redis5.0集群搭建 for linux
redis自3.0版本以来支持主从模式的集群,可用哨兵监控集群健康状态,但这种方式的集群很不成熟,数据备份需要全量拷贝。在之后的版本才真正支持集群分片。
在redis5.0中去除了以redis-trib.rb作为搭建集群的工具,全部整合到了redis-cli中,这极大地简化了集群环境的搭建,特别是对不懂ruby语言的小伙伴们(但是ruby以及zlib还是需要安装的)。
redis集群至少6个实例--3 master,3 slave。搭建集群需要保证数据一致,如果单数据库有数据,需要到此数据库中删除数据--命令:flushdb。
redis启动需要制定配置文件 ./src/redis-server redis.conf
redis.conf主要配置如下:
port 6377
pidfile ./info/process.pid
logfile "./info/logs/redis.log"
databases 16(集群下只支持单数据库)
dir ./info/data/
cluster-enabled yes(很重要,必填)
配置好后,将6实例全部启动 ./src/redis-server redis.conf。然后用redis-cli配置集群。
查看集群命令:./src/redis-cli --cluster help
搭建集群命令:./src/redis-cli --cluster create 127.0.0.1:6370 127.0.0.1:6371 127.0.0.1:6372 127.0.0.1:6377 127.0.0.1:6378 127.0.0.1:6379 --cluster -replicas1(主从自动分配)之后会有提示输入yes,集群搭建成功。
如果出现如下错误,说明集群实例slots不均衡:
[ERR] Not all 16384 slots are covered by nodes.
需要如下命令修复:
./src/redis-cli --cluster fix 127.0.0.1:6379。
集群搭建成功后,./src/redis-cli --cluster check 127.0.0.1:6379查看集群状态。
搭建集群后链接测试:
./src/redis-cli -c -h 127.0.0.1 -p 6379 (-c 链接集群时必填)
>>set a 11
success
后记-关于容灾与自动恢复
集群虽然能够保证一定容灾,但是自动化恢复才是真正的的省心,建议k8s与docker搭配构成自动部署与恢复。