Redis主备

Redis主备

1、测试环境准备

centos7.6,redis7.0.7,redis编译依赖,

redis下载地址:https://wwrr.lanzoul.com/b031uxy0h 密码:7v2i

2、编译redis

将redis编译依赖包,解压缩,并安装

tar xzf redis_package.tar.gz
cd redis_package
rpm -ivh *.rpm --nodeps --force

解压redis7.0.7压缩包,并编译

tar xzf redis-7.0.7.tar.gz
cd redis-7.0.7
make

执行make编译后可能会遇到以下报错

redis安装zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

解决方案:

make MALLOC=libc

3、编译完的redis程序会在当前src目录下,可以将程序复制到另外的地方

mkdir /redis
cp src/redis* /redis/
cd /redis/
rm -rf *.c

复制redis的配置文件和哨兵的配置文件

###redis配置文件
cp redis.conf /redis/
###哨兵配置文件
cp sentinel.conf /redis/

4、redis启动

###可以直接执行脚本启动,也可在脚本后添加配置文件路径启动
./redis-server redis.conf

5、启动成功后,修改配置文件,搭建主备

###编辑redis配置文件
vim redis.conf
###取消只允许本机IP访问,将此配置注释掉(主备都需要操作)
bind 127.0.0.1 -::1
###主机关闭保护模式,将yes改成no(只主机操作),也可以添加密码保护,就不用关保护模式
protected-mode yes
###备机添加主机IP信息,如实填写(只备机操作)
slaveof 主机ip 端口

6、打开主和备机防火墙redis端口

###临时关闭防火墙
systemctl stop firewalld
###防火墙打开6379端口
firewall-cmd --permanent --add-port=6379/tcp --zone=public

7、启动主机redis,启动成功后启动备机redis。

8、主机连接redis,添加数据测试备机是否同步

###连接主机redis
./redis-cli
###添加数据
127.0.0.1:6379> set b 456
OK
###查看添加数据
127.0.0.1:6379> get b
"456"
###连接备机redis
./redis-cli
###查询刚才主机添加的数据,可以成功查到代表同步成功
127.0.0.1:6379> get b
"456"

9、redis主备添加密码保护(如有需要)

###1、打开主机配置文件
vim redis.conf
###2、找到配置去掉注释,添加自定义密码
requirepass 自定义密码
###3、启动主机redis
###4、打开备机配置文件
vim redis.conf
###5、找到配置去掉注释,添加主机密码
masterauth 主机密码
###6、启动备机

10、redis-cli命令简介

###指定IP,端口,密码登录
redis-cli -h IP -p 端口 -a 密码
###导出rdb文件
redis-cli --rdb filename
###标准输入读取最后一个参数,设置b的值为456。(echo默认有\n换行符,需要加-n参数去掉)
echo -n "456" | redis-cli -x -a 684594ryd set b
###控制台命令
SET key value #给一个键设置值
GET key #获取键的值
DEl key #删除键
DBSIZE #返回当前库的key总数
SAVE #同步保存数据到硬盘
BGSAVE #异步保存数据到硬盘
INFO #提供服务器的信息和统计信息

redis哨兵设置

1、哨兵配置文件详解sentinel.conf

###当前Sentinel服务运行的端口;
port <port>
###日志文件位置
logfile <logfile-full-path>
###添加为后台运行
daemonize yes
###Sentinel服务运行时使用的临时文件夹; 
dir <dir>
###指定redis的master节点名称(自定义)、地址、端口、客观认定数量;quorum表示需要几个哨兵节点确认才可将master的状态从“主观不可用”变为“客观不可用”;
sentinel monitor <master-name> <ip> <port> <quorum>
###设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同,如果没有密码可以不设置该配置项;
sentinel auth-pass <master-name> <password>
###Sentinel认为Redis实例已经失效所需的毫秒数;
sentinel down-after-milliseconds <master-name> <time>
###表示如果在该时间(ms)后,master仍没活过来,则启动failover,从剩下的slave中选一个升级为master;
sentinel failover-timeout <master-name> <time>

2、打开主和备机的哨兵服务端口

###防火墙打开26379端口
firewall-cmd --permanent --add-port=26379/tcp --zone=public

3、哨兵启动

redis-sentinel sentinel.conf

注意点:

①哨兵的端口需要防火墙放开,否则会出现哨兵之间无法联系的问题

②redis服务的端口也是需要互相放开

故障维修

哨兵自动选举新的redis的master节点后,之前的master节点要重新加入热备当中,需要在配置文件加入slaveof和masterauth这两段配置信息。

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值