Redis应用学习——Redis Cluster运维常见问题
1. 集群完整性 1. 在每个节点的配置文件中有一个配置参数cluster-require-full-coverage,默认值为yes,该参数就表示是否要保证集群中16384个槽位全部可用时,该集群才会提供服务,即要保证集群的完整性;参数值设置为yes,则如果某个持有槽位的节点发生故障或者正在故障转移,客户端执行key命令时就会返回客户端一个error错误,提示该集群已下线停止服务,所以一般来说,在实际应用中是无法容忍参数值为yes,一般都会设置为no 2. 带宽消耗 1. Redis Cluster中的节点数量不超过1000个(官方建议),因为每个节点之间都会定时进行一些信息交换(比如节点状态监测、进行ping/pong操作等),当节点数量扩大时,就会带来不容忽视的带宽消耗,影响带宽消耗主要在下列三个方面: (1)消息发送频率:节点发现与其他节点的最后一次通信时间超过cluster-node-timeout/2时,会向其他节点发送ping命令 (2)消息数据量:比如会接收slot槽位数组和整个集群的状态数据 (3)节点部署的机器规模:集群部署的机器规模越大,且每台机器的节点部署的越均匀,则集群整体可用宽带会提高 2. 优化方法: (1)避免多个业务使用一个集群,大业务可以使用多个集群 (2)尽量将节点均匀部署到多台机器中 (3)合理配置参数cluster-node-timeout