多个client使用2台redis server

方案1

从每台client直接连接这两台redis server
问题:这两台redis server的连接成本很高,每台redis server都要处理所有的client连接

方案2

在client和redis server中间加一个proxy(例如nginx)
在proxy层可以实现三种方式,从后面的redis中取数据。

  • ketama 一致性哈希算法
  • modula 取模
  • random 任意
    twitter/twemproxy (支持这三种distribution模式)
    问题: proxy单点

方案3

在方案2的基础上,做proxy的集群,并在proxy集群前加上LVS和keepalived,keepalived可以同时监控LVS和proxy。

这些方案需要架构师和devops实现,但对于开发来说是不可见的。