redis分片配置

1、结构规划

三台机器为例

2、地址和端口对应

A  :  192.168.1.1:7000
C1 :  192.168.1.1:7001
B  :  192.168.1.2:7000
A1 :  192.168.1.2:7001
C  :  192.168.1.3:7000
B1 :  192.168.1.3:7001
C2 :  192.168.1.3:7002

3、配置

所有节点,除了端口号,配置是一样的配置:

mkdir /etc/redis/cluster/7000(对应端口修改)
vim /etc/redis/cluster/7000/redis-7000.conf

port 7000
cluster-enabled yes 
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes 
cluster-require-full-coverage no
daemonize yes 
dir ./
cluster-migration-barrier 1 

redis-server /opt/redis/conf/redis-7000.conf > /opt/redis/logs/redis-7000.log 2>&1 & 
redis-server /opt/redis/conf/redis-7001.conf > /opt/redis/logs/redis-7001.log 2>&1 &
#C3
redis-server /opt/redis/conf/redis-7002.conf > /opt/redis/logs/redis-7002.log 2>&1 &

4、集群配置

redis-trib.rb create --replicas 1 192.168.1.1:7000 192.168.1.2:7000 192.168.1.3:7000 192.168.1.1:7001 192.168.1.2:7001 192.168.1.3:7001

检查状态

redis-trib.rb check 1 192.168.1.1:7000

输出如下内容则为成功:

[OK] All nodes agree about slots configuration.  
>>> Check for open slots...  
>>> Check slots coverage...  
[OK] All 16384 slots covered.

5、给C添加C2从节点

之所以要多添加一个从节点,是因为:当集群中某一个master宕机了,其从升级为主后,会出现这个新主没有从的情况,此时,这个C2会自动分配为这个新主的Slave.

安装配置和前面的实例是一样的,只需修改配置文件的端口。添加步骤:登录集群执行cluster nodes获取C的节点ID-登录C2将其设置为C的Slave(也可以是A或者B的)。例如:

cluster replicate 2b9ebcbd627ff0fd7a7bbcc5332fb09e72788835

6、总结

这是官方集群的基本配置,客户端需要支持ask/move访问节点,便可以访问其中一个主节点来使用集群。当集群中不可用节点超过半数,整个集群将不可用,当集群中Master宕机,其对应的Slave会提升为Master,原本的Master再次加入启动连接到集群中时,会成为Slave。

    原文作者:岦_
    原文地址: https://www.jianshu.com/p/cd7101209009
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞