1. Redis Cluster 简介
Redis Cluster 是 Redis 官方提供的 Redis 集群功能。
为什么要实现 Redis Cluster?
Redis 是单线程的(从网络 I/O 处理到实际的读写命令处理),无论单核 CPU 下内存多大,如果需要大量计算能力,还是需要采用分布式以增加 CPU 资源。
随着公司发展,用户数量增多,并发越来越多,业务需要更高的 QPS,而主从复制中单机的 QPS(10W)可能无法满足业务需求。
数据量的考虑:现有服务器内存不能满足业务数据的需要时,单纯向服务器添加内存不能达到要求,此时需要考虑分布式需求,把数据分布到不同服务器上。
网络流量需求:业务的流量已经超过服务器的网卡的上限值,可以考虑使用分布式来进行分流。
离线计算,需要中间环节缓冲等别的需求。
Redis Cluster 缺点
当节点数量很多时,性能不会很高。
解决方案:使用 smart 智能客户端操作集群达到通信效率最大化。客户端内部负责计算维护键,槽以及节点的映射,用于快速定位到目标节点。智能客户端知道由哪个节点负责管理哪个槽,而且当节点与槽的映射关系发生改变时