Redis哨兵环境搭建

32

前言:

按照单机版的redis进行编译及安装redis。

实例说明,一主两从一哨兵 主:6379 从:6380、6381 哨兵:26379

1.环境准备

复制redis.conf配置文件形成3份,分配修改3个配置文件。关键信息如下: 这里是把redis可执行文件安装到了redis目录中。编译redis的时候执行的命令如下:

cd /Users/lisw/work/work-tools/redis-6.2.7
make
make install PREFIX=/Users/lisw/work/work-tools/redis-6.2.7

所以配置里用了相对路径。

#修改绑定的ip地址,绑定后,只有此ip才能够访问redis
bind 0.0.0.0 
#端口号
port 6379
#保护模式修改为否,允许远程连接
protected-mode no
#后台运行
daemonize yes
#设定访问密码
requirepass enginex123
#设定主库密码与当前库密码同步,保证从库能够提升为主库。(与主库的requirepass一致)
masterauth enginex123
#打开AOF持久化支持
appendonly yes
#进程守护文件
pidfile "/var/run/redis_6379.pid"
#db等相关文件目录位置(替换成自己的目录)
dir "../redis-sentinel"
#日志目录(替换成自己的目录)
logfile "../redis-sentinel/log6379.log"

6380、6381配置与6379配置雷同,把端口号及一些进程守护文件等做一些区分即可。但是还需要在增加一个配置

#将6379位置为该从节点的主节点
replicaof 127.0.0.1 6379

2.启动Redis节点

liswdeMBP:~ lisw$ cd /Users/lisw/work/work-tools/redis-6.2.7/
liswdeMBP:redis-6.2.7 lisw$ cd bin
liswdeMBP:bin lisw$ ./redis-server ../redis-sentinel/redis-6379.conf &
[1] 48158
liswdeMBP:bin lisw$ ./redis-server ../redis-sentinel/redis-6380.conf &
[2] 48166
liswdeMBP:bin lisw$ ./redis-server ../redis-sentinel/redis-6381.conf &
[1] 48173

启动以后查看redis进程

liswdeMBP:bin lisw$ ps -ef |grep redis
  501 48167     1   0 10:17上午 ??         0:18.96 ./redis-server *:6380 
  501 48174     1   0 10:17上午 ??         0:19.52 ./redis-server *:6381 
  501 49266     1   0 10:37上午 ??         0:17.01 ./redis-server *:6379 
liswdeMBP:bin lisw$ 

登录6379,查看主从状态

liswdeMBP:bin lisw$ ./redis-cli -a enginex123 -h 127.0.0.1 -p 6379
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.50.130,port=6380,state=online,offset=602,lag=1
slave1:ip=192.168.50.130,port=6381,state=online,offset=588,lag=1
master_failover_state:no-failover
master_replid:3c459593935c380cc4647d6214a751f6f79ac1dd
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:602
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:602
127.0.0.1:6379> 

3.哨兵节点环境搭建

修改sentinel.conf文件,关键配置如下:

# redis sentinel配置文件
#配置监听的主节点,masterRedis为服务名称,可以自己定义。192.168.50.130为主节点的ip,6379为主节点的名称,1代表有一个或者一个以上的哨兵认为主节点不可用时,则进行选举操作
sentinel monitor masterRedis 192.168.50.130 6379 1
#设置主节点的访问密码
sentinel auth-pass masterRedis enginex123
# 关闭保护模式,只有关闭之后,才能远程连接
protected-mode no
# 哨兵端口
port 26379
# 哨兵数据存放位置
dir "/Users/lisw/work/work-tools/redis-6.2.7/redis-sentinel/sentineldata"
# 日志文件
logfile "../redis-sentinel/sentinellog.log"
# 以守护进程运行
daemonize yes
# 进程ID保存位置
pidfile "/var/run/redis-sentinel-26379.pid"
# 设置sentinel的访问密码
requirepass "enginex123"

如果哨兵节点与主节点在同一台ip时,配置sentinel monitor时不要使用127.0.0.1,否则可能会有问题。 启动哨兵环境

liswdeMBP:bin lisw$ ./redis-sentinel ../redis-sentinel/sentinel.conf 

自此哨兵环境已经全部搭建完成。