1. 安装redis(主从服务一致)
sudo apt-get install redis-server
2. redis配置
2.1 主服务(192.168.1.121)配置
# 修改前先备份
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
#修改配置文件前先把redis服务停掉
sudo service redis stop
# 修改
sudo vim /etc/redis/redis.conf
# 修改: bind 127.0.0.1 ::1
# 替换为:bind 0.0.0.0
# 修改: # requirepass foobared
# 设定密码认证
# 替换为:requirepass '123'
# 修改:# masterauth <master-password>
#替换为:masterauth '123'
重启redis 服务
sudo service redis start
2.2 从服务器(192.168.1.122)配置
# 修改前先备份
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
#修改配置文件前先把redis服务停掉
sudo service redis stop
# 修改
sudo vim /etc/redis/redis.conf
# 修改: bind 127.0.0.1 ::1
# 替换为:bind 0.0.0.0
# 修改: # requirepass foobared
# 替换为:requirepass '123'
# 修改:# replicaof <masterip> <masterport>
# 替换为:replicaof 192.168.1.121 6379
# 修改:# masterauth <master-password>
# 替换为:masterauth '123'
重启 redis 服务器
sudo service redis start
安装redis-sentinel(哨兵)
主从服务一致:
sudo apt-get install redis-sentinel
配置哨兵模式
主从服务一致,为防止一个哨兵程序失效,主从服务上都配一个哨兵程序
# 修改前先备份
sudo cp /etc/redis/sentinel.conf /etc/redis/sentinel.conf.bak
# 修改配置文件之前先停掉哨兵
sudo service redis-sentinel stop
# 修改
sudo vim /etc/redis/sentinel.conf
# 修改:bind 127.0.0.1 ::1
# 修改为: #bind 127.0.0.1 ::1
# 找到当前行:# sentinel monitor <master-name> <ip> <redis-port> <quorum>
# 后面添加:sentinel monitor mymaster 192.168.1.121 6379 2
# 这个一定要做,不然下面添加后,无法启动哨兵
# 找到:# sentinel auth-pass <master-name> <password>
# 下一行添加:sentinel auth-pass mymaster 123
# 找到:# sentinel down-after-milliseconds <master-name> <milliseconds>
# 下一行添加:sentinel down-after-milliseconds mymaster 1000
sentinel failover-timeout mymaster 1000
重启哨兵
sudo service redis-sentinel start
描述
# 配置哨兵的监控参数
# 格式:sentinel monitor <master-name> <ip> <redis-port> <quorum>
# master-name是为这个被监控的master起的名字
# ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,所以这里写master节点的容器名
# redis-port是被监控节点所监听的端口号
# quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了
sentinel monitor mymaster 127.0.0.1 6379 2
# 连接主节点的密码
# 格式:sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 123456
# master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒
# 格式:sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 3000
Hyperf 项目redis.php 添加哨兵配置
'sentinel' => [
'enable' => (bool) env('REDIS_SENTINEL_ENABLE', false),
'master_name' => env('REDIS_MASTER_NAME', 'mymaster'),
'nodes' => explode(';', env('REDIS_SENTINEL_NODE', '')),
'persistent' => '',
'read_timeout' => 0,
],
.env配置
REDIS_SENTINEL_ENABLE = true
REDIS_MASTER_NAME = mymaster
REDIS_SENTINEL_NODE = 192.168.1.121:26379;192.168.1.122:26379;192.168.1.123:26379