目录
一、准备材料
二、主从模式
三、哨兵模式
四、其他
采用一主(master)二从(slave)三哨兵(sentinel)的架构模式构建最简单的Redis集群
服务类型 |
是否主服务器 |
IP地址 |
端口 |
Redis |
是 |
服务器IP地址 |
6379 |
Redis |
否 |
服务器IP地址 |
6380 |
Redis |
否 |
服务器IP地址 |
6381 |
Sentinel |
服务器IP地址 |
26379 |
|
Sentinel |
服务器IP地址 |
26380 |
|
Sentinel |
服务器IP地址 |
26381 |
Redis-x64-3.2.100.zip
解压后拷贝三份,如图所示,重命名文件夹
端口、密码均可自定义修改,配置项也要随之修改
(1)修改密码
分别打开Redis-6379、Redis-6380、Redis-6381文件夹中的redis.windows.conf文件,ctrl+f搜索【requirepass】关键字,复制requirepass foobared ,另起一行改为requirepass dcdt
(2)绑定IP地址
分别打开Redis-6379、Redis-6380、Redis-6381文件夹中的redis.windows.conf文件,ctrl+f搜索【bind 127.0.0.1】关键字,在后面,敲击空格,增加服务器IP
(3)修改端口
分别打开Redis-6380、Redis-6381文件夹中的redis.windows.conf文件,ctrl+f搜索【port 6379】关键字, Redis-6380、Redis-6381端口依次修改为6380、6381
(4)设置主库
Redis-6380、Redis-6381文件夹下redis.windows.conf文件端口配置下增加主库配置:slaveof 192.168.196.33 6379
注意:有关slaveof的配置只是配置从服务器,主服务器不需要配置
(5)设置主库密码
Redis-6380、Redis-6381设置主库密码:ctrl+f搜索masterauth关键字,设置主库密码
(6)保存redis.windows.conf文件
(7)启动、测试
1.依次启动实例
打开cmd,进入redis安装目录,执行命令:【redis-server.exe redis.windows.conf】
2.测试主从模式
新开cmd窗口,进入主库Redis-6379文件目录,输入如下命令
【redis-cli.exe -h 192.168.196.33 -p 6379 -a dcdt】
命令解释:
-h ip地址
-p 端口
-a 密码
连接后,输入【info replication】,可以看到,有两个从库,connected_slaves:2
使用RedisStudio连接三个redis库,查看主从数据同步功能是否实现,主库读写,从库只读。发送请求往6379里赋值,看6380,6381是否能同步数据。
哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
(1)新增配置项
三个实例目录下分别新建sentinel.conf, 端口为26379,26380,26381,其他一致
配置如下:
# 当前Sentinel服务运行的端口
port 26379
#禁止保护模式
protected-mode no
# 哨兵监听的主服务器
sentinel monitor mymaster 192.168.196.33 6379 2
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 5000
# 如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时,最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
# 密码
sentinel auth-pass mymaster dcdt
启动三个哨兵进程
打开cmd,依次进入三个redis安装目录,执行命令:
【redis-server.exe sentinel.conf --sentinel】
至此,哨兵配置且启动完成
(2)测试
1.停掉6379进程,在6379实例的cmd窗口下 crtl+c
2.观察6380、6381实例中cmd窗口中的日志
新开cmd窗口,进入主库Redis-6381文件目录,输入如下命令
【redis-cli.exe -h 192.168.196.33 -p 6381 -a dcdt】
连接后,输入【info replication】,可以看到,6381角色为主库,6380为从库
至此,哨兵测试通过
start.bat 快速启动测试
@echo off
start cmd /k "pushd E:\software\redis\Redis-6379&&redis-server.exe redis.windows.conf"
start cmd /k "pushd E:\software\redis\Redis-6380&&redis-server.exe redis.windows.conf"
start cmd /k "pushd E:\software\redis\Redis-6381&&redis-server.exe redis.windows.conf"
start cmd /k "pushd E:\software\redis\Redis-6379&&redis-server.exe sentinel.conf --sentinel"
start cmd /k "pushd E:\software\redis\Redis-6380&&redis-server.exe sentinel.conf --sentinel"
start cmd /k "pushd E:\software\redis\Redis-6381&&redis-server.exe sentinel.conf --sentinel"