redis-cluster

多主集群  负责可扩展性

主从模式  负责高可用性

 

集群为什么不高可用呢, 因为集群中的每个节点是有hash插槽的, 丢一个就丢了一个插槽. 是分区的概念

 

config:

cluster-enabled yes

 

server:

redis-server redis-6371.conf

redis-server redis-6372.conf

redis-server redis-6373.conf

redis-server redis-6374.conf

redis-server redis-6375.conf

redis-server redis-6376.conf

 

client:       //主要是客户端的命令启动集群

redis-cli --cluster create \

192.168.10.101:6371

192.168.10.101:6372

192.168.10.102:6373

192.168.10.102:6374

192.168.10.103:6375

192.168.10.103:6376

--cluster-replicas 1    //比例1 , 1主1从

 

redis-cli -c -a 123456 -h 192.168.10.103 -p 6376

cluster info

 

 

 

在一致哈希算法中,

如果增加或者移除一个节点,仅影响该节点在哈希环上顺时针相邻的后继节点,其它数据也不会受到影响。(减少了数据迁移量)

映射的结果值往顺时针的方向的找到第一个节点,就是存储该数据的节点。(节点分布不均匀)

一致性哈希算法虽然减少了数据迁移量,但是存在节点分布不均匀的问题。节点越少, 这个缺点越明显.   redis放弃了一致性哈希,  才用了哈希槽. 

 

yaml:

cluster:

 nodes:

 

添加主节点

redis-cli -a 123456 --cluster reshad 192.168.10.101:6372(//这里是随便的一个节点, 都代表集群) --cluster-from xxxxxxxxxxxxxxxx(//从哪取槽) --cluster-to xxxxxxxxxxxxxxxxxxxxxxxx(//给谁)  --cluster-slots 2000(//给多少)

 

添加从节点

redis-cli -a 12345 --cluster add-node 192.158.10.103:6378 192.168.1.1:6377   --cluster-slave --cluster-master-id xxxxxxxxxxxxxxxxx

 

集群 三主三从

 

 

删除主节点 要把插槽从新转回去, 再删

or

/redis/bin/redis-cli -c -a 12345 -h 192.16710.101 -p 6371

192.168.10.101:6371> cluster failover    //主从切换, 然后再删除从,  避免了转移槽的麻烦

 

集群的整体转移: 

如果目标集群和源集群结构完全一致, 可以一个对应一个的迁移(拷贝RDB或AOF)

如果结构不一致, 先集中迁移到目标级群的一个节点上, 然后再分片

自动迁移工具: redis shark

自动检查工具: redisfullcheck

 

posted @ 2022-04-06 23:52  hippoppower  阅读(52)  评论(0)    收藏  举报