redis3.0的demo实验
redis3的stable版本发布,集群功能确实的在redis中稳定了下来,不过4月1号发版这个习惯可不太好。
安装还是一如既往的make-->>make test-->>make install,具体的安装说明看下载下来的README文件即可(需要有点在linux下make c语言程序的基础)
使用前先看集群的说明
- 单点master的问题算是解决了,不过集群功能下不能使用多库了。
- 一个master拖几个后备机,挂了其中一个master则这个master所属的后备机顶上,如果master和所属后备机都挂了的话,好吧,redis会有一部分数据丢失,因为redis是把数据通过哈希算法分布式在所有master上的。
- master的后备机只是单纯的做数据复制,无法起到slave的只读作用,slave需要单独去配置
- master故障临界状态下,可能会有写一致性的问题,甚至有丢失已写入数据的情况。所以挑些坚强的机器做master
- redis的master不会相互间传递数据,比如你访问A,但是数据存在B上,那么客户端需要重新访问b才行,所以,redis的集群不是去中心化的,显而可见,选择的redis客户端必须支持集群
一个标准最小集群(6个实例)的实现:
实例需要的配置文件必须的几个参数
cluster-enabled yes #必须 cluster-config-file nodes.conf #必须 cluster-node-timeout 5000 #必须 appendonly yes #必须
- 以master模式运行6个空的,使用具有以上参数的配置文件
redis-trib.rb create --replicas 1 备份机1:端口 备份机2:端口 备份机3:端口 master1:端口 master2:端口 master3:端口
备份机器在前,master在后,按照顺序一一对应。
redis的集群特性使得的运维产生了一些问题,尤其是添加新的master迁移slot的时候,特别是数据量特别大的时候。因为redis更多的应用是以缓存的特性,响应时间和服务的不可间断性尤其重要,但是新的集群数据分布方式给运维还是造成了一定服务间断性问题。
版权声明:本文为博主原创文章,未经博主允许不得转载。