传统单机模式下,一旦 Redis 服务宕机,直接对业务产生巨大影响;另外,单机承受压力有限,所以当业务量增大到一定程度后,需要部署多个服务实例以避免突发故障和分摊压力。
所以 Redis 在一开始设计的时候,就考虑到可以采用 主从模式 部署多个 Redis 实例的方式来保证数据的一致性以及防灾、分压。
本文目标设计 1 主 2 从,6380 端口的 Redis 实例作为主服务,6381、6382 端口的实例作为从服务。
环境:windows7 单机部署
一、下载 Redis 安装包
参考:https://blog.youkuaiyun.com/createNo_1/article/details/108358659
可以先安装好 RedisDesktopManager,方便下面测试。
二、配置 Redis 主从实例
Redis 文件夹复制两份,总共三个 Redis 运行文件夹,分别命名如下:
1. 修改主服务配置(Redis6380)
以下两个配置文件一起修改,两个文件完全一样:
修改端口配置为 6380:
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6380
2. 修改从服务配置(Redis6381、Redis6382)
两个从服务修改方式一致,以修改 Redis6381 为例,修改端口,配置主服务地址及端口:
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6381
……
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6380
如果主 Redis 存在密码 123456,则需要增加配置:
# masterauth <master-password>
masterauth 123456
三、运行测试
在 cmd 命令行的格式下,进入到各个目录下,执行命令先启动主 Redis 服务,再启动从 Redis 服务,启动效果如下:
在启动这一步,可能会存在各种问题,大多数情况是因为刚接触 Redis 主从,造成各种配置问题,网上也有各种问题的说明和解决方法,但是,学习新东西时,很重要的是需要先看到成功的效果。
所以我建议,如果遇到 不清楚 && 查了半天也没解决 的问题,那有一个终极绝招,重来一遍,把下载的压缩包重新解压、重新复制两份,就只改上面提到的配置参数,应该就能解决问题。
当看到主从效果后,在实际应用时,不可避免就会接触到更深入的各种配置优化,所以不急在这一步。
四、安装主、从服务到系统服务列表
在 cmd 命令行的格式下,进入到各个目录下,以安装主服务示例,执行以下命令:
# --service-name:设置服务名称,这里设置为 redis6380,从服务可以设置为 redis 6381、6382
./redis-server.exe --service-install redis.windows.conf --service-name redis6380
效果如下:
win + R,键入 services.msc 查看系统服务列表:
右键属性设置三个服务为自动启动(开机会自动启动),再手动启动三个服务,就可以正常使用了。
如果要删除已注册在服务列表的服务,可以在 cmd 命令行任何路径下,执行以下命令:
# 命令格式
sc delete [服务名]
# 例如:删除 redis6382 服务
sc delete redis6382
五、使用 RedisDesktopManager 测试
在主服务 redis6380 下,添加数据:
在从服务器 redis6381、redis6382 下查询数据:
至此,Redis 主从环境搭建完成。