您的位置:首页 > 数据库 > Redis

部署redis cluster

2018-01-06 15:44 369 查看
部署集群之前,需求停掉之前的redis进程和哨兵;
redis cluster虽然支持集群,会自动进行主从分布,但其实是不支持读写分离的。
1.redis cluster 重要配置
cluster-enabled
cluster-config-file <filename>
这是指定一个文件,供cluster模式下的redis实例将集群状态保存在那里,包括集群中其他机器的信息,比如节点的上线和下限,故障转移,不是我们去维护的,给它指定一个文件,让redis自己去维护的
cluster-node-timeout <milliseconds>
节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务

开始部署6个jedis实例
鉴于之前已经部署过redis,这里只需要修改配置文件属性与名称即可
mkdir -p /etc/redis-cluster redis cluster的自动配置文件夹
mkdir -p /var/redis/7001,7002,7003... redis的数据文件 aof dump
mkdir -p /var/log/redis redis的log文件夹
复制/etc/redis/6379.conf并修改如下参数重命名为7001.conf
port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize yes #守护进程
pidfile /var/run/redis_7001.pid
dir /var/redis/7001
logfile /var/log/redis/7001.log
bind 192.168.1.107
appendonly yes #允许aof
这边注意:无需开启slaveof 因为cluster会自动分配主从节点,无需自动配置;因为是本地测试,authpass requirepass全部不启用

准备启动脚本
/ect/init.d 下 复制redis_6379 重命名为 redis_7001 修改相应端口
4.创建集群
yum install -y ruby
yum install -y rubygem
gem install redis
最后一步的时候报错了:redis需要 ruby version > 2.2的版本
参考后在线升级了ruby的版本:https://www.cnblogs.com/carryping/p/7447823.html
cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin
redis-trib.rb create --replicas 1 192.168.1.107:7001 192.168.1.107:7002 192.168.1.108:7003 192.168.1.108:7004 192.168.1.105:7005 192.168.1.105:7006

--replicas参数: 每个master有几个slave

最后使用 redis-trib.rb check 192.168.1.107:7001 检查redis cluster部署情况,也可以查询redis log日志

由于redis cluster不支持读写分离,在set get数据的时候会根据计算出来key的splot不同 会提示move to
可以使用 readonly 在从节点上读取主节点数据;
使用redis-cli -h host -p port -c 强制自动进行底层重定向

redis cluster 其他参数和命令参考:
http://blog.csdn.net/mysqldba23/article/details/67640478
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis cluster