redis学习之redisCluster

redis节点的分布式架构:

redisCluster的分布式架构中,每个cluster节点之间都会相互通信,了解彼此负责指派槽(虚拟节点的分布情况)的关系

客户端根据key的hash值映射到对应的cluster节点之后,cluster查看当前的key的hash是否在自己管理的指派糟的范围内,若存在,那么就返回,若不存在,那么就返回该客户端该去的cluster节点,这种查找方式是不高效的,

cluster架构中,每个节点都有对应的从节点来保证服务的高可用性,内部并不是使用了Sentinel的方式,而是通过cluster节点之间的通信来解决。

redisCluster的原生命令的安装(这样可以理解cluster的基本架构):

主要配置:

 cluster-enabled yes   以cluster模式启动

 cluster-node-timeout 15000  故障转移以及链接超时的等待时间

 cluster-config-file node-port.conf  该节点自己的配置文件

cluster-require-full-coverage 表示你所部署的所有的cluster都正常工作时该集群才对外提供服务,yes表示是,no表示不是,我们使用no

(1)开启redis节点,以Cluster模式启动

   cluster-enabled yes   以cluster模式启动

   cluster-config-file node-port.conf  该节点自己的配置文件

   开启节点的命令:redis-server redis-port.conf      该redis节点使用自己的配置文件启动,就是上面提到的配置文

(2)使用meet命令来让cluster节点之间相互通信

   redis-cli -h ip -p port cluster meet ip port

   例如 redis-cli -h 127.0.0.1 -p 6379 cluster meet 127.0.0.1 6380   这样6379 的cluster就与6380的cluster之间建立了通讯

   使用同一个节点跟其他剩余的节点之间执行该命令,可以让所有的节点之间都互相通信

    例如 redis-cli -h 127.0.0.1 -p 6379 cluster meet 127.0.0.1 6381 这样三个节点之间都可以互相通信了

(3)指定分配槽(16383个节点槽)三主三从

(4)指定主从

   

猜你喜欢

转载自blog.csdn.net/qq_32182461/article/details/82527386