Redis 分布式解决方案 - Codis
前言
分布式解决方案介绍
Redis Sentinel
- 用户体量较小时,可以选择 Redis Sentinel,单主 Redis 实例足以支撑业务。
Redis Cluster
- Redis 官方提供的集群方案,用户体量较大时,可以选择 Redis Cluster,通过分片技术可以使用更多的内存。
Twemprox
- Twitter 开源的一个 Redis 和 Memcached 代理服务器,主要用于管理 Redis 和 Memcached 集群,减少客户端与 Cache 服务器直接连接的数量。
Codis
- 一个 Redis 代理中间件,当客户端向 Codis 发送指令时,Codis 会将指令转发到后面的 Redis 实例来执行,并将结果返回给客户端。
- 一个 Codis 实例可以连接多个 Redis 实例,也可以启动多个 Codis 实例来支撑,每个 Codis 节点都是对等的,这样可以增加整体的 QPS 需求,还能起到容灾功能。
客户端分片
- 该方案在 Redis Cluster 还没出现之前使用得比较多,现在基本很少使用了。
- 分片逻辑在业务代码层实现,创建几个毫无关联的 Redis 实例,在代码层对 Key 进行 Hash 计算,然后去对应的 Redis 实例操作数据。
- 该方案对 Hash 算法的要求比较高,需要考虑节点失效后的替代算法方案、数据震荡后的自动脚本恢复、实例的监控等等。