1 分片和槽
1 redis-cluster 一共16384个槽
2 redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 取余, 可以获取key对应的hash slot,然后分配给指定的槽管理,每个hash slot中存储多个k-v值
3 使用哈希槽的好处就是增删节点都非常容易管理(基于机器),因为增删节点都要对指定的槽进行移动操作,但是在上层是不关心的,只要有具体hash槽,就能访问
6 常见操作
一增加一组主从
redis-cli --cluster add-node new-master exits-master
2 为new-master分配槽
redis-cli --cluster reshard exots-master
1 移动的槽位个数
2 new-master-node-id
3 all 代表随机抽取 或者指定的exits-master-node-id
4 是否开始执行迁移
3 增加slave
redis-cli --cluster add-node new-slave exits-master ,默认是加进去都是称为matser节点
.redis-cli -c -h new-slave -p 6386
cluster replicate d282c41660c14959195bb0a4c4c8a61a0d6be0fc 进行复制
4 cluster node进行观察
二 删除从节点不影响槽位 直接删除即可
redis-cli --cluster del-node slave
三 常用命令
redis-cli -h -p -a -c cluster slots| xargs -n8| awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq 可视化节点操作