Windows下Redis的主从复制
Redis拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强大的多级服务器集群架构。目前在同一台window下安装三个redis实例,
其中主服务端口6379,从服务slave1为6380,从服务slave2为6381.
1.当前已安装并启动了主服务器,复制两份主服务的解压目录分别命名为Redis-salve1和Redis-salve2.如下图:
2.配置从服务器
分别配置两个配置文件redis.windows.conf和redis.windows-service.conf(两个文件需要配置的内容相同,以redis.windows.conf为例):
slave1: port 6379 改为 port 6380 增加: slaveof 127.0.0.1 6379
slave2: port 6379 改为 port 6381 增加: slaveof 127.0.0.1 6379
3.启动两个从服务
切换到各自目录下,以slave1为例-输入命令:redis-server --service-install redis.windows.conf --maxmemory 200m --service-name redis6380
4.打开服务,启动两个从服务并设置为自动启动
5.测试
1.)分别登录主从服务器客户端:主:redis-cli.exe 回车 auth 密码; 从:redis-cli.exe -h 127.0.0.1 -p 6380
2.)分别在主从服务器客户端上输入命令:info replication
在从服务器上能够查到主服务器的数据,并且不能写入。
到此主从配置完成
补充:模拟6379 宕机
info replication #观察,发现master_link_status:down,表示主一定宕掉了
#开始从主切换(6380 -->6379)
# 只需要简单执行下面两句命令,就将6380主切换为主
127.0.0.1:6380> slaveof no one
OK
127.0.0.1:6380> config set slave-read-only no
OK
127.0.0.1:6380> set title "sentinel"
OK
#连到从服务上,没有问题
127.0.0.1:6381> get name
"before"
配置主从是遇到的问题:
如果遇到启动从服务,无法连接到主服务,并提示 NOAUTH Authentication required. 这是因为主服务器设置了密码,而从服务器访问主服务器需要带上密码,操作在配置文件redis.windows.conf和redis.windows-service.conf中 加上masterauth 123456