多个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实现,但对于开发来说是不可见的。