前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis5.0.8 Cluster集群部署(上)

Redis5.0.8 Cluster集群部署(上)

原创
作者头像
陈不成i
修改2021-05-20 14:36:51
5960
修改2021-05-20 14:36:51
举报
文章被收录于专栏:ops技术分享

一.Redis Cluster简介

Redis Cluster集群是一种去中心化的高可用服务,其内置的sentinel功能可以提供高可用性:当集群中少数master不可用时,该集群仍可用。

Cluster集群通过哈希槽算法来分片存储数据。集群中有16384(0-16383)个哈希槽,通过CRC16算法对要存取的变量得出值,%16384 得到的余数存入相应的槽范围的主库,或从中取出。

客户端访问集群中的任意一台机器,都可以存取数据;访问集群中的从库时,数据存取时会连接主库再执行操作。从库会自动同步主库的数据。

二.部署

redis5版本以上的cluster集群不需要依赖ruby.生产环境中一个redis cluster集群最少需要6台机器(3主3从,3主6从,…),此次为测试环境,故选用三台机器,每台机器上启动两个服务。

  1. 环境说明:
  2. 系统:centos7.6
  3. redis版本:5.0.8
  4. 服务器&&IP:
  5. 172.31.228.200:6379
  6. 172.31.228.200:6380
  7. 172.31.228.201:6379
  8. 172.31.228.201:6380
  9. 172.31.228.199:6379
  10. 172.31.228.199:6380

1.运行安装脚本(以172.31.228.200:6379为例,此为单机版安装脚本):

  1. centos_version=7
  2. password=5gUfpN1wgQr5t$e^nutaxKQp
  3. private_ip=`ip a | grep eth0 | grep inet | awk '{print $2}' |awk -F / '{print $1}'`
  4. config_file=/etc/redis.conf
  5. port=6379
  6. yum -y install gcc
  7. yum install -y [http://rpms.famillecollet.com/enterprise/remi-release-${centos_version}.rpm](http://rpms.famillecollet.com/enterprise/remi-release-${centos_version}.rpm)
  8. yum --enablerepo=remi -y install redis #安装最新版本的redis
  9. sed -i -r 69s/bind (.*)+/bind ${private_ip}/ ${config_file} #
  10. sed -i 92s/6379/${port}/ ${config_file} #port
  11. sed -i \'136s/no/yes/\' ${config_file} #daemonize
  12. sed -i \'147s/no/systemd/\' ${config_file} #supervised 设置为systemd
  13. sed -i 158s/6379/${port}/ ${config_file}
  14. sed -i \'699s/no/yes/\' ${config_file} #appendonly
  15. sed -i -r \'507s/^#(.*)+/\\1/\' ${config_file}
  16. sed -i 507s/foobared/${password}/ ${config_file} #requirepass
  17. echo
  18. rename-command CONFIG redis${port}config #重命名高危命令
  19. rename-command SHUTDOWN redis${port}shutdown #重命名高危命令
  20. rename-command FLUSHDB \'\' #禁用高危命令
  21. rename-command FLUSHALL \'\' #禁用高危命令
  22. >> ${config_file}
  23. chmod 600 ${config_file} #修改配置文件的权限
  24. sed -i \'12a Restart=always \' /usr/lib/systemd/system/redis.service #设置redis服务自动重启
  25. sed -i \'13a StartLimitIntervalSec=0\' /usr/lib/systemd/system/redis.service #设置服务启动间隔时间为0
  26. systemctl daemon-reload #重新加载systemd
  27. systemctl start redis.service #启动服务
  28. systemctl enable redis.service #设置开机自启

2.然后修改配置文件/etc/redis.conf

  1. cluster-enabled yes #去掉注释
  2. cluster-config-file nodes-6379.conf #去掉注释
  3. cluster-node-timeout 15000 #去掉注释
  4. masterauth 5gUfpN1wgQr5t$e^nutaxKQp #开启集群间密码验证

3.重启服务: systemctl restart reids.service

其他五个节点按上述3个步骤进行(注意修改port,dir(创建数据库目录并修改权限),redis.conf名,pidfile, logfile, redis.service文件名及其内配置的启动命令)

接下来可在任意一个节点配置集群,集群设置方法有两种,

方法1:先指定主库,再添加从库到对应主库

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.Redis Cluster简介
  • 二.部署
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档