安装redis:

1、下载安装包

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

2、解压

tar -zxvf redis-5.0.7.tar.gz

3、编译

cd redis-5.0.7/ make

安装完成后,可以在目录内看到src、conf等子目录

4、安装

cd src/ make install

二、部署主从架构(一主二从)

由于 src 下文件非常多,我们可以将几个常用的命令和 conf 配置文件复制出来进行统一管理,如下:

1、新建bin目录和etc目录

 cd /root/redis/redis-5.0.7/
 mkdir etc
 mkdir bin
 cd etc/
 mkdir redis_master
 mkdir redis_slave1
 mkdir redis_slave2

说明: redis_master作为master节点配置文件的目录 redis_slave1作为第一个slave节点配置文件的目录 redis_slave2作为第二个slave节点配置文件的目

2、回到安装目录将配置文件拷贝对应目录下

 cp redis.conf /root/redis/redis-5.0.7/etc/redis_master
 cp redis.conf /root/redis/redis-5.0.7/etc/redis_slave1
 cp redis.conf /root/redis/redis-5.0.7/etc/redis_slave2

3、进入 src 文件夹下,将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server、redis-sentinel文件复制到 bin 文件夹

 cd src/
 cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /root/redis/redis-5.0.7/bin/

4、启动一个redis服务测试,redis是否可以正常启动

 cd /root/redis/redis-5.0.7/bin
 ./redis-server ../etc/redis_master/redis.conf

在这里插入图片描述

使用redis-cli命令连接客户端,如下

在这里插入图片描述

经测试可行,关闭redis服务

 redis-cli -p 6379 shutdown

5、分别修改各节点配置文件

 cd etc/redis_master
 vim redis.conf
  • 主节点配置
 bind:0.0.0.0               ##Redis 默认只允许本机访问,把 bind 修改为 0.0.0.0 表示允许所有远程访问。如果想指定限制访问,可设置对应的 ip。
 port:6379   
 protected-mode:no                     ##关闭保护模式,可以外部访问
 daemonize:yes                             ##设置为后台启动
 pidfile "/var/run/redis_6379.pid"       ##redi pid存储位置,建议加上端口,便于区分
 logfile "/root/redis/redis-5.0.7/bin/redis_6379.log"     ##日志文件存储位置
 requirepass:pwdtest@2019        ##设置 redis 连接密码
 masterauth:pwdtest@2019         ##slave 服务连接 master 的密码
  • 从节点配置

从机的配置和主机相似,不同的地方是需要使用replicaof指定主机(master)的IP地址和端口,需要注意的是老版本使用的是 slaveof,目前我使用的5.0.7版本要使用 replicaof ,如下。

 bind:0.0.0.0
 port:6378
 protected-mode:no
 daemonize:yes
 pidfile "/var/run/redis_6378.pid"
 logfile "/root/redis/redis-5.0.7/bin/redis_6378.log"
 requirepass:pwdtest@2019
 masterauth:pwdtest@2019
 replicaof 192.168.231.130 6379   ##主节点的IP 端口

replicaof 192.168.231.130 6379 指定当本机为 slave 服务时,设置 master 服务的IP地址及端口,在 redis 启动的时候会自动跟 master 进行数据同步,所以两台从机都这样配置即可。

照样修改另一个从节点的配置文件,端口可为6377

至此,主从架构已经配置完毕

三:主从验证
1、分别启动三个节点

 cd bin/
 ./redis-server ../etc/redis_master/redis.conf
 ./redis-server ../etc/redis_slave1/redis.conf
 ./redis-server ../etc/redis_slave2/redis.conf

可通过 ps -ef|grep redis 查询redis启动情况

2、连上一个节点查看主从信息

 ./redis-cli -h xx.xx.xx.xx -p 6379
 auth pwdtest@2019   ##由于设置有密码,故需先登录
 info replication
 ./redis-cli -h xx.xx.xx.xx -p 6378
 auth pwdtest@2019   ##由于设置有密码,故需先登录
 info replication

可以看到当前节点的角色以及相关信息

3、主从同步验证

在主节点添加几条数据,看slave节点是否可以看到

 ./redis-cli -h xx.xx.xx.xx -p 6379
 auth pwdtest@2019   
 set name xiaoming
 get name
 ./redis-cli -h xx.xx.xx.xx -p 6377
 auth pwdtest@2019   
 get name

结论:master节点添加的数据,slave节点可以查看到

四:哨兵模式搭建

哨兵的配置文件是:sentinel.conf

1、同样为了方便管理,将sentinel.conf复制至对应的目录下

 cp redis-5.0.7
 cp sentinel.conf etc/redis_master/
 cp sentinel.conf etc/redis_slave1/
 cp sentinel.conf etc/redis_slave2/

2、分别编辑 sentinel.conf

master节点6379对应的sentinel.conf端口为6376 slave1节点6378对应的sentinel.conf端口为6375 slave2节点6377对应的sentinel.conf端口为6374

 vim sentinel.conf
 port:6376                               ## 默认端口为26379。
 protected-mode:no                       ## 关闭保护模式,可以外部访问
 daemonize:yes                           ##设置为后台启动
 pidfile "/var/run/redis-sentinel_6376.pid"         ##redis sentinel pid文件位置
 logfile "/root/redis/redis-5.0.7/bin/sentinel_6376.log"          ##日志文件
 sentinel monitor mymaster 192.168.231.130 6379 2           ##指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换
 sentinel auth-pass mymaster pwdtest@2019             ##当在Redis实例中开启了requirepass,这里就需要提供密码
 sentinel down-after-milliseconds mymaster 3000                      ##这里设置了主机多少秒无响应,则认为挂了
 snetinel parallel-syncs mymaster 1              ##主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1
 sentinel failover-timeout mymaster 180000       ##故障转移的超时时间,这里设置为三分钟

3、启动三个哨兵

 cd bin/
 redis-sentinel ../etc/redis_master/sentinel.conf
 redis-sentinel ../etc/redis_slave1/sentinel.conf
 redis-sentinel ../etc/redis_slave2/sentinel.conf

4、查看哨兵信息

 ./redis-cli -h 121.36.xx.xx -p 6375
 info sentinel

五、容灾切换

1、模拟主机宕机:手动停掉master节点

 ./redis-cli -h 121.36.xx.xx -p 6379
 auth pwdtest@2019
 shutdown

2、连上原来的slave1节点查看主从信息,会发现主节点已经自动变了

 ./redis-cli -h xx.xx.xx.xx -p 6378
 auth pwdtest@2019   
 info replication

3、重新启动6379节点,发现又加入主从里面了

 ./redis-server ../etc/redis_master/redis.conf
 ./redis-cli -h xx.xx.xx.xx -p 6378
 auth pwdtest@2019   
 info replication
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐