Centos7 编译安装redis-4.0.1及主从+哨兵模式

一、redis概述及哨兵模式

redis对数据缓存到内存,实现高效缓存,使用持久化模块对数据进行保存,使用sentinel模式实现redis集群,提供高可用服务。

下面是在宏观层面上哨兵模式的功能列表:

·        监控哨兵不断的检查masterslave是否正常的运行。

·        通知当监控的某台Redis实例发生问题时,可以通过API通知系统管理员和其他的应用程序。

·        自动故障转移如果一个master不正常运行了,哨兵可以启动一个故障转移进程,将一个slave升级成为master,其他的slave被重新配置使用新的master,并且应用程序使用Redis服务端通知的新地址。

·        配置提供者哨兵作为Redis客户端发现的权威来源:客户端连接到哨兵请求当前可靠的master的地址。如果发生故障,哨兵将报告新地址。

二、网络规划及拓扑

hostnameIPredis服务端口哨兵哨兵服务端口
redis-master10.0.0.1416739sentinel126739
redis-slave110.0.0.1426739sentinel226739
redis-slave210.0.0.1436739sentinel326739



三、编译安装redis及采用systemd启动脚本

1、解决依赖包问题并上传安装包

[root@redis-master ~]#yum install gcc gcc-c++ -y

2、创建必须的用户、文件及授权

[root@redis-master ~]# cd /usr/local/src/
[root@redis-master src]# tar -xf redis-4.0.1.tar.gz
[root@redis-master src]# mkdir /usr/local/redis
[root@redis-master src]# useradd redis
[root@redis-master src]# mv redis-4.0.1/* /usr/local/redis
[root@redis-master src]# chown -R redis:redis /usr/local/redis

3、编译安装redis,makeMALLOC=libc是调用管理内存碎片

[root@redis-master src]# cd /usr/local/redis
[root@redis-master redis]# make MALLOC=libc
[root@redis-master redis]# make && make install
4、配置redis配置文件
[root@redis-master redis]# vim /usr/local/redis/redis.conf
daemonize yes(为体现效果,一开始使用默认,暂时设为前台运行)
protected-mode no
bind 10.0.0.141
logfile “/var/log/redis/redis.log”(日志存放路径,一开始使用默认)
dir /usr/local/redis/rdb(持久化配置)
supervised systemd(采用systemd启动)
[root@redis-master redis]# mkdir /usr/local/redis/rdb
[root@redis-master redis]# chown -R redis:redis /usr/local/redis/
[root@redis-master redis]# mkdir /var/log/redis
[root@redis-master redis]# chown -R redis:redis /var/log/redis

5、启动redis测试

[root@redis-master redis]# pwd
/usr/local/redis
[root@redis-master redis]# ./src/redis-server redis.conf

redis启动成功!!
6、编写启动脚本,并增加执行权限
[root@redis-master redis]# vim /usr/lib/systemd/system/redis.service
[root@redis-master redis]# cat /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/redis/src/redis-cli -h 10.0.0.141 -p 6379 shutdown
Restart=always

[Install]
WantedBy=multi-user.target
[root@redis-master redis]# chmod 750 /usr/lib/systemd/system/redis.service
使用systemd启动服务
[root@redis-master redis]# systemctl start redis

 查看启动状态


四、配置redis主从+哨兵模式
1、配置两台从服务器(redis-slave1和redis-slave2)
[root@redis-slave1 redis]# vim redis.conf
slaveof 10.0.0.141 6379
[root@redis-slave2 redis]# vim redis.conf
slaveof 10.0.0.141 6379

2、配置哨兵模式(三台服务器都要配置)

[root@redis-master redis]# vim sentinel.conf
daemonize yes(方便测试效果,使用默认)
sentinel monitor mymaster 10.0.0.141 6379 2(ip指向master)
protected-mode no
3、启动哨兵(手动启动)

配置完Redis和Sentinel之后,按顺序启动各个角色。启动顺序如下:

Master->Slave->Sentinel,要确保按照这个顺序依次启动。

Sentinel的启动命令和Redis类似。

[root@redis-master ~]# systemctl start redis
[root@redis-slave1 ~]# systemctl start redis
[root@redis-slave2 ~]# systemctl start redis
[root@redis-master ~]# cd /usr/local/redis/
[root@redis-master redis]# ./src/redis-sentinel sentinel.conf
[root@redis-slave1 redis]# ./src/redis-sentinel sentinel.conf

哨兵启动成功!!!!
4、编写systemd启动sentinel脚本,使用systemd启动sentinel

[root@redis-master ~]# vim /usr/lib/systemd/system/sentinel.service
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/redis/src/redis-sentinel /usr/local/redis/sentinel.conf --daemonize no
ExecStop=/usr/local/redis/src/redis-cli -h 10.0.0.141 -p 6379 shutdown
Restart=always

[Install]
WantedBy=multi-user.target
[root@redis-master redis]# chmod 750 /usr/lib/systemd/system/sentinel.service
systemd启动sentinel

五、测试

1、测试master写入缓存并查看slave是否同步



2、持久化数据


2、测试哨兵模式

实现高可用切换master(故障前master位于10.0.0.141)



redis-master主机故障,两台从服务器选举出新master


新master产生




  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值