redis-cluster

Redis Cluster 集群创建与扩缩容

补充说明

Redis Cluster 通过哈希槽分片和主从复制提供水平扩展。集群至少需要 3 个主节点,客户端按 MOVED/ASK 重定向访问。

常用示例

redis-cli --cluster create \
  10.0.0.1:6379 10.0.0.2:6379 10.0.0.3:6379 \
  10.0.0.4:6379 10.0.0.5:6379 10.0.0.6:6379 \
  --cluster-replicas 1

redis-cli --cluster check 10.0.0.1:6379
redis-cli --cluster info 10.0.0.1:6379
redis-cli --cluster add-node 10.0.0.7:6379 10.0.0.1:6379
redis-cli --cluster add-node 10.0.0.8:6379 10.0.0.1:6379 --cluster-slave
redis-cli --cluster reshard 10.0.0.1:6379
redis-cli --cluster rebalance 10.0.0.1:6379
redis-cli --cluster del-node 10.0.0.1:6379 <node-id>
redis-cli --cluster fix 10.0.0.1:6379

易错点与排错

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. 用普通 redis-cli 访问集群报 MOVED,怎么办?
  2. 多 key 操作报 CROSSSLOT,原因和解决办法是什么?
  3. 扩容只加了节点,为什么容量没有分担?
答案
  1. 加 -c 跟随重定向,不要用普通方式直接访问集群。
  2. key 不在同一槽,用 hash tag 保证同槽。
  3. 只加节点不 reshard 不会迁移槽位,需要迁移槽位。