Windoows 下 Redis Sentinel 的部署

凌晨
697 字
4 分钟
...阅读
...评论
老家

虽然很久之前就了解了 Redis 的哨兵机制,今天第一次尝试在多个服务器上部署多个 Redis 实例,并且设置了哨兵用来进行自动的主从切换。

一、部署 Redis

在 3 台服务器上分别安装了 Redis,Redis on Windows 下载地址:https://github.com/MSOpenTech/redis/releases

配置文件添加密码:

requirepass <密码>
masterauth <密码>

除了设置本实例的密码外,还需要输入 master 的密码(需要和本实例密码相同),所有实例需要设置相同的密码,以便进行主从切换。

需要注意的是,Redis 从某个版本起,加入了一个protected-mode的保护模式。启动保护模式的条件是protected-mode开启,且没有设置bind,且没有设置密码。我的 Redis 的实例部署在多个公网服务器下,所以加密码是必须的,另外需要注释掉默认的bind 127.0.0.1,以使用公网 IP。因为设置了密码,所以protected-mode就无需进行改动,直接使用默认的就可以了。但是在后面哨兵的配置中的保护模式会有一个坑。

在 3 个 Redis 实例中挑选一个作为初始的 master。在另外两个实例的配置文件中,加入slaveof的配置。

二、配置 Sentinel

创建哨兵的配置文件,内容如下:

port <端口号>

sentinel monitor redis-master <Master IP> <Master端口号> 2

sentinel down-after-milliseconds redis-master 5000

sentinel failover-timeout redis-master 900000

sentinel parallel-syncs redis-master 2

sentinel auth-pass redis-master <密码>

logfile "LogFiles/monkeyrun-sentinel.log"

protected-mode no

具体参数的含义不再赘述,可以 Google。

这里需要加上最后一行protected-mode no,把哨兵的保护模式关掉。因为哨兵目前不支持设置密码,如果不加这行就会启动保护模式了,外网无法访问,会出现哨兵与哨兵之间互相认为对方不可用的情况。

三、一些命令

因为是在 Windows 下,有些命令可以通过批处理文件方便处理。将如下代码分别保存为.bat 文件,可以直接双击执行。默认安装完会新建一个名叫 Redis 的服务,我不喜欢这个名字,可以先卸载这个默认的 Redis 服务,然后重新安装自己命名的服务。这样的好处是以后可以在一台服务器上安装多个不同用途的 Redis 实例,以便区分。

1、安装 Redis 服务

redis-server --service-install redis-service-monkey-run.conf --service-name redis-service-monkey-run

2、启动 Redis 服务

redis-server --service-start --service-name redis-service-monkey-run

3、停止 Redis 服务

redis-server --service-stop --service-name redis-service-monkey-run

4、卸载 Redis 服务

redis-server --service-stop --service-name redis-service-monkey-run
redis-server --service-uninstall --service-name redis-service-monkey-run

5、安装 Sentinel 服务

redis-server --service-install sentinel-monkey-run.conf --service-name redis-sentinel-service-monkey-run --sentinel

6、启动 Sentinel 服务

redis-server --service-start --service-name redis-sentinel-service-monkey-run

7、停止 Sentinel 服务

redis-server --service-stop --service-name redis-sentinel-service-monkey-run

8、卸载 Sentinel 服务

redis-server --service-stop --service-name redis-sentinel-service-monkey-run
redis-server --service-uninstall --service-name redis-sentinel-service-monkey-run

四、其他

验证了一下哨兵的主从切换,很爽!

睡觉!

评论区
Copyright © Bean Deng