【无中生有】---9---分布式缓存实现

就集群二字而言,redis的实现比memcache更实在些,当然master单点写入也是一个非常坑的问题。

而redis新的3.0版本的master的集群功能,虽然master不再是一台了,但是本质上master单点写入的问题解决的并不太好。而且数据读取的集群化还是需要客户端上去实现,感觉这一版只是作者为了不再跳票急匆匆推出来的。

而且3.0的集群共推出后,如果要对slave做网络负载均衡也复杂了不少。

下面先讨论2.8版redis集群的实现:

2.8版

redis的下载与安装----http://redis.io

使用keepalived做网络负载均衡----keepalived的使用与安装http://www.keepalived.org/

使用keepalived对slave做网络负载均衡,有一个好处就是redis的slave发生变化时不需要去通知客户端,keepalived屏蔽了集群内部的变化

关于集群方案见一篇旧文:http://blog.csdn.net/xqj198404/article/details/12946137

这个方案最大的问题是master迁移过程中会有一段较长时间无法写入

3.0版

如果仍然使用keepalived对集群进行屏蔽,那么对keepalived的配置就复杂了。

2.8的方案中只需要使用一个端口和redis保持一致就行了

但是3.0的版本里,由于将存储以哈希算法方式分散到集群的所有master里,如果将所有master的slave使用一个端口屏蔽,由于数据是哈希散布,查询无法进行了。所以不同的master的slave需要各独自占用一个端口,在查询时发生哈希散布时,能够准确的调用端口。

而对master的写入端口也存在相同的处理,以便master向后备机发生迁移时客户端无需更改配置。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/AI001/p/4614362.html