今天尝试在windows上部署RedisCluster集群服务。
Redis Cluster相关资料:http://www.redis.cn/topics/cluster-tutorial.html
准备工作
1. Redis 版本根据自己电脑选择: https://github.com/MicrosoftArchive/redis/releases
2. Ruby环境准备。Redis windows版没有 cluster 工具,需要使用redis-trib.rb工具。步骤如下:
a. 安装Ruby,下载地址:http://rubyinstaller.org/downloads/ 。安装完成后 在cmd中执行ruby -v,能正确显示版本信息则证明安装成功。
b. 导入redis模块,cmd中执行gem install redis.
c. 下载redis-trib.rb文件,https://github.com/antirez/redis/tree/unstable/src下载单个即可
安装步骤:
1. redis-server 安装。需要建立6个redis服务,分别为6000,6001,6002,6003,6004,6005。配置中 cluster-enabled 设置yes。
2. 安装命令 redis-server--service-install redis.windows.conf --service-name redis.cluster_6000。
3. 集群创建,./redis-trib.rb create --replicas 1 127.0.0.1:6000127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005
4. 显示 [OK] All 16384 slots covered
安装完成!
关于Redis Cluster
目前关于Redis集群的高可用方案大致可分为两种方式
1. 客户端实现分区算法。服务端以多组主从 独立的Redis服务
2. 服务端Cluster模式。该方案至少需要3个主节点,且需要Redis 3.0以上的版本。
其中:
第一种方案 需要自己实现分区算法,且还需要搭建Sentinel服务监控来保证高可用。优点是各个服务相对独立。即便一组服务Down了,其它服务仍能正常提供服务。缺点是很难扩展。需要最开始系统设计时,预估数据量。
第二种方案 部署简单,通过Redis-trib.rb工具很方便实现在线数据迁移。各节点相互监控,去中心化,自带主从切换。但是稳定性还有待进一步验证,不知道最新的版本稳定性怎么样。且要注意,集群中任一主从全down的话会导致整个集群不可使用。
请根据实际需要选择。
Redis客户端
推荐使用Stackexchange.Redis。个人基于该组件上封装的RedisCacheManager组件,地址:https://gitee.com/gt1987/gt.rediscachemanager
支持redis各种数据类型的基本操作
支持读写分离
支持在客户端层面实现的redis集群
支持跨IDC的高可用双活方案
后续会不断更新加如新功能