Redis集群技术及Codis实践

Redis集群技术及Codis实践

http://www.infoq.com/cn/articles/effective-ops-part-03

Redis3.0集群方案分析

http://www.cnblogs.com/guoyinglin/p/4604279.html

等到我把Redis3.0客户端库hiredis编译好集成到公司系统,访问其中一台Redis3.0服务器居然返回"MOVED231810.12.8.156

:6379",这才了解到访问其他Redis3.0服务器的Key需要二次定位,这就是Redis3.0所谓的ASK转向/MOVED转向机制,这绝对

是一个大坑,网上既然没有人说出来,如果我不站出来,会有人继续掉进这个大坑。

Redis最初的使命是用高效的内存取代复杂繁重的数据库,如果从缓存服务器获取一个Key要经过二次定位,访问时间是原来单机

缓存服务器的两倍,那样我们还不如直接用数据库呢。

鉴于Redis3.0所谓的ASK转向/MOVED转向机制,网上推出了JAVA版的Redis3.0客户端库jedis、C++版的Redis3.0客户端

库ACL,他们都支持根据Redis服务器居返回"MOVED"信息进行二次定位数据访问,而且还有在主备切换的情况下访问备机的功能,

正常情况下Redis3.0集群要部署3台主机和3台备机,这样客户端就要同时维持这6台服务器的长连接,像我们公司的系统有上百个

进程,一个线程就要维持6台缓存服务器的长连接,一个进程拥有多个线程,总的算起来差不多上千个缓存服务器的长连接,这无异

于饮鸩止渴。

相关推荐