1. 部署Redis集群说明
需要用到6台主机,所以采用Redis Replication + Redis Sentinel实现主从复制与故障转换。采用1 master 2 slave 3 sentinel(一主二从三哨兵)模式。3个sentinel是为了保证其中一个sentinel和主主机挂掉后,其它2个检测到并且同意后才会实现故障转移。如果总共只有2个sentinel的话,只能设置一个sentinel同意转移(具体设置文中会提到),那么可能会引起不必要的冲突。
Redis简介:Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对很多其它。包含string(字符串)、list(链表)、set(集合)、zset(sorted
set --有序集合)和hash(哈希类型)。为了保证效率,数据都是缓存在内存中。
2. 下载Windows 版Redis
由于Redis官网没有提供Windows版本,下载微软提供的 Redis-x64-3.2.100 解压包,下载Url:https://pan.baidu.com/s/1mi3QB4O。 三台主机都需要安装。例如主主机IP 192.168.38.204 ,从主机IP 192.168.38.205,从主机IP 192.168.38.206为例(一主二从三哨兵)。
3. 在主主机中,解压后去根目录,打开redis.windows.conf文件,将默认的bind 127.0.0.1修改为主机的真实IP,如下:
4. 配置从主机 192.168.38.205 (192.168.38.206一样配置)
解压后去根目录,打开redis.windows.conf文件,将默认的bind 127.0.0.1修改为主机的真实IP,如下:
添加以下,关联主主机的Redis
至此,Redis主从配置完成,数据会实时进行同步
5. 以下为配置Sentinel进行故障转移
3个Sentinel的部署主机分别IP为:192.168.36.227, 192.168.36.228, 192.168.36.229
6.配置Sentinel (三台配置方式一致)
解压后去根目录,新建sentinel文件夹并且在文件夹中新建sentinel.conf文件并打开,插入如下信息:
bind 192.168.38.205
port 26379
dir sentinel
sentinel monitor mymaster 192.168.38.204 6379 2 //这里的2代表需要2台sentinel同意才实现转移
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
7. 将Redis设置为开机自启动(2选1)
1.根目录执行redis-server --service-install redis.windows.conf添加到服务中。如图在系统服务中可见
2. 使用Windows工作排程器
将Sentinel设置为开机自启动。新建一个bat文件,输入以下内容,在排程内设置为开机自执行。
C:
cd C:\
cd C:\redis
redis-server.exe sentinel/sentinel.conf --sentinel
8. 测试:先启动主主机Redis,然后启动从主机Redis,最后启动Sentinel,
Redis启动命令为:根目录中执行redis-server.exe redis.windows.conf或者在系统服务中启动
Sentinel启动命令为:根目录中执行redis-server.exe sentinel/sentinel.conf --sentinel
(注意:是cmd打开控制台,cd到根目录执行命令)
9. 启动后可用RedisDesKtopManager可视化工具进行查看数据是否同步
10. 测试故障转移:在主主机Redis根目录中执行:redis-cli.exe -h 192.168.38.204 -p 6379进入主主机Redis,同理另外打开一个cmd并执行redis-cli.exe -h 192.168.38.205 -p 6379 进入192.168.38.205中的Redis,进入不同IP的Redis后查看当前Redis的信息,如图:
注意:截图中的205主机采用的端口是6380,请以实际设置的端口为准
可以看出当前204为主主机,205为从主机
10.关闭主主机的Redis
11. 当Sentinel监听到主主机断开时,当30秒内(时间在新建的sentinel.conf进行设置)确认无法从新连接后,会自动切换从主机为主主机,sentinel输入如下
12. 至此,205切换为主主机
204切换为从主机
至此,测试完成