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 算法的要求比较高,需要考虑节点失效后的替代算法方案、数据震荡后的自动脚本恢复、实例的监控等等。

Codis 的基础使用

整体架构介绍

参考资料