redis集群部署文档
1.部署的服务器ip地址 172.16.0.151 172.16.0.173 172.16.0.220 2.redis版本 wget https://download.redis.io/releases/redis-6.2.5.tar.gz 3.部署架构 注意:Redis集群至少需要3个master节点,所以现在总共有6个节点,就只能是1master对应1slave这种方式 Redis集群为什么至少需要三个master节点? 因为新master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,当其中一个挂了,是达不到选举新master的条件的 Redis集群为什么推荐master节点数为奇数? master节点数为奇数不是必须的,但是奇数个master节点可以在满足选举该条件的基础上节省一个节点。 因为master的选举机制,例如: 在9个master的架构中,如果4台master故障,通过过半机制,redis可以选举新的master。如果5台master故障无法选举新的master(9-5<9/2,不满足过半机制) 在10个master的架构中,如果4台master故障,通过过半机制,redis可以选举新的master。如果5台master故障无法选举新的master(10-5=10/2,不满足过半机制) 主端口7000 从端口7001 3.三台服务器安装目录 /data/ 4.修改配置文件 cd /data/redis7000/conf vim redis.conf 1.bind 172.16.0.151 //将bind 127.0.0.1修改为自己本机的IP地址 2.daemonize yes //redis放置后台启动 3.port 7000 //设置端口 4.pidfile /data/redis7000/redis_7000.pid 5.logfile /data/redis7000/redis_7000.log 6.dir /data/redis7000/redis_7000_dir 7.masterauth 1234444 //配置密码,所有节点统一 8.requirepass 1234444 //配置密码,所有节点统一 9.cluster-enabled yes //开启集群 10.cluster-config-file redis.conf //指定配置文件名称 11.cluster-node-timeout 15000 12.appendonly yes //开启aof持久化,要想了解redis持久化,可以看我之前写的redis持久化说明,如果对于redis上的数据不是那么重要的话,也可以不进行redis持久化配置 13.no-appendfsync-on-rewrite yes //aof重写期间是否同步 14.protected-mode yes //关闭保护模式 15.maxmemory 20GB //设置 Redis 最大使用内存大小,当 Redis 使用的内存超过设置大小时就开始对数据进行淘汰 16.maxmemory-policy volatile-ttl //设置 Redis 的内存淘汰算法为:在设置了过期时间的Keys中,通过LRU算法来进行淘汰 17.若Redis里存放的是一些无关紧要的数据,可以将Redis配置成无持久化,有助于性能提升,将下列项注释即可 #save 900 1 #save 300 10 #save 60 10000 5.编辑配置文件 6个节点都需要修改 6.新增myid文件 随便登录一台服务器上的一个节点,在此,我以192.168.36.137为例 第一种:不指定从机 cd /data/redis7000/bin #cluster-replicas 1代表1个master后有几个slave节点,1代表1个,所以6个节点将会产生3个master和3个slave,-a 指定redis的密码 ./redis-cli --cluster create 172.16.0.151:7000 172.16.0.151:7001 192.168.36.138:7002 192.168.36.138:7003 192.168.36.139:7004 192.168.36.139:7005 --cluster-replicas 1 -a 123 第二种:指定从机 选项–replicas 0 表示先为集群创建不含slaver 的集群。 ./redis-cli --cluster create 172.16.0.151:7000 172.16.0.173:7000 172.16.0.220:7000 --cluster-replicas 0 -a 123 启动redis-server ./redis-server ../conf/redis.conf ./redis-cli -h 172.16.0.151 -p 7000 -c -a 123 --raw 手动添加slaver(从机) 使用创建时的cluster-master-id 或执行 ./src/redis-cli --cluster check 192.168.90.17:6380 查看运行状态 挂载slaver ./redis-cli --cluster add-node 172.16.0.173:7001 172.16.0.151:7000 --cluster-slave --cluster-master-id 8a9b6cba4d0a79bdd4cfba9207e462ef470b31f8 ./redis-cli --cluster add-node 172.16.0.220:7001 172.16.0.173:7000 --cluster-slave --cluster-master-id ab0087529f911253985cd220f39a34a87dad03cb ./redis-cli --cluster add-node 172.16.0.151:7001 172.16.0.220:7000 --cluster-slave --cluster-master-id c32650a2023750ac6c4c0fe024503c88a62dfac9 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. >>> Performing hash slots allocation on 3 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 M: 8a9b6cba4d0a79bdd4cfba9207e462ef470b31f8 172.16.0.151:7000 slots:[0-5460] (5461 slots) master M: ab0087529f911253985cd220f39a34a87dad03cb 172.16.0.173:7000 slots:[5461-10922] (5462 slots) master M: c32650a2023750ac6c4c0fe024503c88a62dfac9 172.16.0.220:7000 slots:[10923-16383] (5461 slots) master Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join ... >>> Performing Cluster Check (using node 172.16.0.151:7000) M: 8a9b6cba4d0a79bdd4cfba9207e462ef470b31f8 172.16.0.151:7000 slots:[0-5460] (5461 slots) master M: ab0087529f911253985cd220f39a34a87dad03cb 172.16.0.173:7000 slots:[5461-10922] (5462 slots) master M: c32650a2023750ac6c4c0fe024503c88a62dfac9 172.16.0.220:7000 slots:[10923-16383] (5461 slots) master [OK] All nodes agree about slots configuration. /redis-cli -h 172.16.0.151 -p 7000 -c -a 123 --raw 7.参考文档 https://blog.csdn.net/xiefazhi123/article/details/119147657
posted on 2022-09-07 14:34 running-fly 阅读(116) 评论(0) 编辑 收藏 举报