redis主从+哨兵模式

Posted zboy-bin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis主从+哨兵模式相关的知识,希望对你有一定的参考价值。

redis主从+哨兵搭建

 

在安装之前,需要安装环境,不然编译会报错
需要安装gcc:yum install gcc-c++

一、主节点搭建
1.上传redis安装包到目录/usr/local/redis

2.解压包
tar -zxvf redis-5.0.5.tar.gz

3.将解压的包复制一份,更名为redis-master
cp -r redis-5.0.5 /usr/local/redis/redis-master

4.进到目录中编译
cd redis-master/
make

5.修改配置文件
vim redis.conf
修改内容如下:
启用守护进程:daemonize yes
设置pidfile的路径:pidfile /usr/local/redis/redis-master/redis.pid
设置端口:port 8379
取消绑定主机地址:# bind 127.0.0.1
修改日志路径:logfile "/usr/local/redis/redis-master/logs/master.log"
设置密码:requirepass redis
#注意以上的日志路径需要创建logs目录和文件master.log

6.然后创建两个文件启动和停止
vi start.sh
/usr/local/redis/redis-master/src/redis-server /usr/local/redis/redis-master/redis.conf

vi stop.sh
kill `cat /usr/local/redis/redis-master/redis_6379.pid`

7.对脚本授权
chmod 777 *.sh

8.可以执行脚本来启动或者停止redis
./start.sh
./stop.sh

9.检查进程
ps aux|grep redis

主节点搭建完成

二、从节点搭建

搭建从节点1
1.复制一个redis解压好的包
cd /usr/local/redis
cp -r redis-5.0.5 /usr/local/redis/redis-slave1

2.编译
make

3.修改配置文件
vim redis.conf
修改内容如下:
启用守护进程:daemonize yes
设置pidfile的路径:pidfile /usr/local/redis/redis-slave1/redis.pid
设置端口:port 8380
取消绑定主机地址:# bind 127.0.0.1 # 主节点的IP和端口
修改日志路径:logfile "/usr/local/redis/redis-slave1/logs/slave1.log"
绑定主节点ID:slaveof 127.0.0.1 8379
主节点密码:masterauth redis # 主节点密码
设置密码:requirepass redis # 密码和主节点保持一致

6.然后创建两个文件启动和停止
vi start.sh
/usr/local/redis/redis-slave1/src/redis-server /usr/local/redis/redis-slave1/redis.conf

vi stop.sh
kill `cat /usr/local/redis/redis-slave1/redis_6379.pid`

7.对脚本授权
chmod 777 *.sh

8.可以执行脚本来启动或者停止redis
./start.sh
./stop.sh

9.检查进程
ps aux|grep redis

从节点1搭建完成

搭建从节点2
1.复制一个已解压的文件
/usr/local/redis
cp -r redis-5.0.5 /usr/local/redis/redis-slave2

2.编译
make

3.修改配置文件
vim redis.conf
修改内容如下:
启用守护进程:daemonize yes
设置pidfile的路径:pidfile /usr/local/redis/redis-slave2/redis.pid
设置端口:port 8381
取消绑定主机地址:# bind 127.0.0.1 # 主节点的IP和端口
修改日志路径:logfile "/usr/local/redis/redis-slave2/logs/slave2.log"
绑定主节点ID:slaveof 127.0.0.1 8379
主节点密码:masterauth redis # 主节点密码
设置密码:requirepass redis # 密码和主节点保持一致

6.然后创建两个文件启动和停止
vi start.sh
/usr/local/redis/redis-slave2/src/redis-server /usr/local/redis/redis-slave2/redis.conf

vi stop.sh
kill `cat /usr/local/redis/redis-slave2/redis_6379.pid`

7.对脚本授权
chmod 777 *.sh

8.可以执行脚本来启动或者停止redis
./start.sh
./stop.sh

9.检查进程
ps aux|grep redis


三、哨兵节点搭建
哨兵节点1搭建
1.直接将从节点1复制过来,不用在进行编译了
cp -r redis-slave1 /usr/local/redis/redis-sentinel1

2.修改配置文件
vim sentinel.conf
修改内容如下:
启用守护进程:daemonize yes
设置pidfile的路径:pidfile /usr/local/redis/redis-sentinel1/redis.pid
设置端口:port 20001
修改日志路径:logfile "/usr/local/redis/redis-sentinel1/logs/sentinel1.log"
# 指定别名 主节点地址 端口 哨兵个数(有几个哨兵监控到主节点宕机执行转移)
设置监听的主节点:sentinel monitor mymaster 127.0.0.1 8379 2
设置主节点密码:sentinel auth-pass mymaster redis
# 如果哨兵3s内没有收到主节点的心跳,哨兵就认为主节点宕机了,默认是30秒
设置失效时间(单位为秒):sentinel down-after-milliseconds mymaster 30000
# 如果10秒后,master仍没活过来,则启动failover,默认180s
设置故障转移时间(单位为毫秒):sentinel failover-timeout mymaster 6000

6.然后创建两个文件启动和停止
vi start.sh
/usr/local/redis/redis-sentinel1/src/redis-server /usr/local/redis/redis-sentinel1/redis.conf

vi stop.sh
kill `cat /usr/local/redis/redis-sentinel1/redis_6379.pid`

7.对脚本授权
chmod 777 *.sh

8.可以执行脚本来启动或者停止redis
./start.sh
./stop.sh

9.检查进程
ps aux|grep redis


哨兵节点2搭建,还将搭建2个哨兵节点,这里就一次写下来,不在重新写第三个的哨兵节点的搭建
1.直接将哨兵节点1复制过来,不用在进行编译了,有些配置文件也不用重新改
# cp -r redis-sentinel1 /usr/local/redis/redis-sentinel2
# cp -r redis-sentinel1 /usr/local/redis/redis-sentinel3

2.修改配置文件
vim sentinel.conf
修改内容如下:
启用守护进程:daemonize yes
设置pidfile的路径:pidfile /home/redis/redis-sentinel2/redis.pid
设置端口:port 20002
修改日志路径:logfile “/home/redis/redis-sentinel2/logs/sentinel2.log”
设置监听的主节点:sentinel monitor mymaster 127.0.0.1 8379 2
设置主节点密码:sentinel auth-pass mymaster redis
设置失效时间(单位为秒):sentinel down-after-milliseconds mymaster 30000
设置故障转移时间(单位为毫秒):sentinel failover-timeout mymaster 6000

剩余步骤同上。。。

四、查看状态
1.查看哨兵节点状态
/usr/local/redis/redis-sentinel1/src/redis-cli -p 20001 -a redis
连接成功后再输入命令:
info sentinel
正常情况下,会有如下输出:

如果提示NOAUTH Authentication required.
需要输入密码
auth redis
info sentinel

退出连接
quit

2.查看主节点状态
# /usr/local/redis/redis-master/src/redis-cli -p 8379 -a redis
127.0.0.1:8379> info replication


3.查看从节点状态
[root@iZwz9clei4hhnvm8rucly7Z redis-sentinel3]# /usr/local/redis/redis-slave1/src/redis-cli -p 8380 -a redis
Warning: Using a password with ‘-a‘ or ‘-u‘ option on the command line interface may not be safe.
127.0.0.1:8380> info replication

 

以上是关于redis主从+哨兵模式的主要内容,如果未能解决你的问题,请参考以下文章

redis主从+哨兵

玩转Redis的高可用(主从、哨兵、集群)

缓存加速------Redis主从复制,哨兵模式,集群

缓存加速------Redis主从复制,哨兵模式,集群

Redis 高可用之主从复制哨兵模式集群模式

Redis主从复制和哨兵模式