在Redis的默认配置中,如果发现任意一个插槽不可用,则整个集群都停止对外服务。
可以通过配置文件中修改,将
cluster-require-full-coverage yes
改成
cluster-require-full-coverage no
使得即使集群的插槽不完整,存在的插槽依旧可用。
集群节点之间会不断地互相Ping来确定集群中其它节点地状态,每次Ping携带地信息至少包括 插槽信息 、 集群状态信息 。集群中节点越多,每次ping携带地信息量就会很大,所以我们要 避免大集群,集群节点数不要太多、 单节点上不要运行太多Redis实例(所有实例的数据流量都会通过同一块网卡、多个实例并发访问时,所有流量会累加,可能直接跑满网卡物理带宽) 、 配置合适的cluster-node-timeout(集群节点客观下线的超时时间,超时时间配置越大,ping的频率就会低,带宽问题就能减轻)
集群 不仅会导致性能下降,还会给程序员开发带来额外负担,命令批处理的时候需要分插槽来实现,不然就会执行报错。所以大部分场景下,单体Redis(主从Redis)就能达到万级QPS了,也具备很强的高可用性。所以能搭建 主从Redis 。就不要使用 Redis集群 。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。