redis cluster
: 自动实现master+slave复制和读写分离,master+slave
高可用和主备切换,支持多个master的hash slot,支持数据分布式存储
下面搭建过程基于
master + 多slave
,实际上生产环境中redis cluster
读写都是放在master上的,如果实现master + slave
读写分离需要配合java客户端 jedis进一步封装,操作难度大,且没有必要,后面会在详细讲的。
搭建redis-cluster
停止之前redis进程
停止之前所有的测试实例,包括redis主从和哨兵集群。
重要配置
cluster-enabled <yes/no>
cluster-config-file <filename>
:这是指定一个文件,供cluster模式下的redis实例将集群状态保存在那里,包括集群中其他机器的信息,比如节点的上线和下限,故障转移,不是我们去维护的,给它指定一个文件,让redis自己去维护的cluster-node-timeout <milliseconds>
:节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务
三台机器启动6个redis实例
- 在
eshop-cache03
上部署redis日志和持久化目录,因为之前只是用到了哨兵,并没有启动。
mkdir -p /etc/redis # 存放redis的配置文件
mkdir -p /var/redis/6379 # 存放redis的持久化文件
redis cluster集群
,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave,最少的要求。
正式环境下,建议都是说在6台机器上去搭建,至少3台机器,保证,每个master都跟自己的slave不在同一台机器上,如果是6台自然更好,一个master+一个slave就死了
- 3台机器去搭建6个redis实例的redis cluster,创建需要目录
mkdir -p /etc/redis-cluster
mkdir -p /var/log/redis
mkdir -p /var/redis/7001