1 成员失联后重新加入集群
背景:被kill的redis-member是无法自动重新加入集群的
步骤 1 所有节点执行 CLUSTER FORGET node_id(master+slave)
2 重新启动被kill的成员
3 redis-trib.rb add-node --slave --master-id master-id slave:port master:port重新添加
4 redis-trib.rb check 检查redis集群状态
补充 如果是正常shutdown的情况下是可以自动加入集群的
2 倾斜问题
1 数据倾斜
1 节点与槽位的分配不均匀 采用reblance(一般不会发生)
2 各个槽位中的数据量差异大 每个节点采用info查看 key数量
3 包含bigkey,即key所对应的value数据量极大,比如大字符串,具有大量元素的list、set等类型的数据,这时就需要优化数据结构 每个节点查询大key
4 内存相关配置不一致
2 请求倾斜
1 热点key问题,某个key是一个极高访问频率的key,或者该key是一个bigkey
读写分离
2 集群模式中实现读写分离面临的问题与Redis Sentinel中相同,但是集群中实现读写分离更为复杂,所以不建议实现读写分离,通常是在集群中部署多个节点来减轻读写压力
3 redis-cluster代理
1 本质是可以直连而不使用代理,使用代理有特殊的需求
2 以下代理
redis-cluster-proxy 为redis 6.0后官方推出的一款
codis 已不再更新 支持redis 3.2版本
predixy性能高于 Cerberus
3 分布式存储 持久化存储PV(PersistentVolume) Ceph Block Service