ubuntu安装部署Redis哨兵

主从复制的好处:

数据冗余,实现数据的热备份.
故障恢复,避免单点故障带来的服务不可用.
读写分离,负载均衡。主节点负载读写,从节点负责读,提高服务器并发量
高可用基础,是哨兵机制和集群实现的基础
在这里插入图片描述
在这里插入图片描述

部署Redis主从同步基础:

服务器IP
master192.168.88.136
slave1192.168.88.211
slave2192.168.88.10

下载源码包:

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

准备插件:

sudo apt-get install gcc  make

建议更换 sources.list 软件源:
换软件源参照这篇博客

进行解压安装:

tar -zxvf redis-5.0.5.tar.gz
sudo mv redis-5.0.5 /usr/local/redis
cd  /usr/local/redis
#进行编译安装:
make 
sudo make install

等待编译安装完成!
如果是想自己指定安装路径和配置的话可以参照这篇博客

简单一点就直接命令进行Redis初始化,系统默认配置(可修改的),这是个交互式的!

./utils/install_server.sh

在这里插入图片描述

Port : 6379 //端口,你在交互时是可以输入自己想要的端口 Config file :
/etc/redis/6379.conf //配置文件,没改就是这默认的 Log file :
/var/log/redis_6379.log //日志文件路径,默认,都可以改! Data dir :
/var/lib/redis/6379 //数据存放目录,重要,不改就默认 Executable :
/usr/local/bin/redis-server //启动脚本地址 Cli Executable :
/usr/local/bin/redis-cli //连接redis库命令路径

应为你是初始化的Redis,默认Redis现在是启动的!

主节点配置文件:

现在去修改 主机Redis 配置文件:

sudo vim /etc/redis/6379.conf

bind 0.0.0.0        #绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。如果bind选项为空的话,那会接受所有来自于可用网络接口的连接
protected-mode no      #保护模式,默认是开启状态,只允许本地客户端连接
daemonize yes          #默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面
appendonly yes         # 默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。
                         Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。

requirepass 123456
#设置访问密码				//在507行

从节点配置文件修改:

sudo vim /etc/redis/6379.conf

修改以下几项:

bind 0.0.0.0        #绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。如果bind选项为空的话,那会接受所有来自于可用网络接口的连接
protected-mode no      #保护模式,默认是开启状态,只允许本地客户端连接
daemonize yes          #默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面
appendonly yes         # 默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。
                         Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。
                         
replicaof 192.168.88.136 6379    #配置为master的从,如果master上有密码配置,还需要增加下面一项密码配置
masterauth 123456   #配置主的密码

两台slave从服务器配置好后进行连接Redis配置主从:

redis-cli		//l连接Redis库
slaveof 192.168.88.136 6379		//配置成为172.16.209.131的从服务器	  主服务器端口6379
info replication			//查看配置详情

修改完配置文件重启Redis即可!
在这里插入图片描述

验证主从Redis可用:

主节点操作

sudo redis-cli 
127.0.0.1:6379> set name test
OK
127.0.0.1:6379> 

从节点操作

sudo redis-cli
127.0.0.1:6379> get name
"test"
127.0.0.1:6379> 

多个从节点,每个节点都要验证,出现以上现象及证明主从Redis可用,到此redis的主从就搭建完毕了!
———————————————————————————————————————————————————————————

哨兵模式(sentinel)

Sentinel的主要功能包括主节点存活检测、主从运行情况检测、自动故障转移(failover)、主从切换。Redis的Sentinel最小配置是一主一从。

Redis的Sentinel系统可以用来管理多个Redis服务器,该系统可以执行以下四个任务:

监控

Sentinel会不断的检查主服务器和从服务器是否正常运行。

通知

当被监控的某个Redis服务器出现问题,Sentinel通过API脚本向管理员或者其他的应用程序发送通知。

自动故障转移

当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点是主从关系的其中一个从节点升级为新的主节点,
并且将其他的从节点指向新的主节点。

配置提供者

在Redis Sentinel模式下,客户端应用在初始化时连接的是Sentinel节点集合,从中获取主节点的信息。

现在开始部署哨兵服务:

主机IP角色说明
192.168.88.136Sentinel01
192.168.88.211Sentinel02
192.168.88.10Sentinel03

部署Sentinel
Sentinel.conf配置文件主要参数解析:

# 端口
port 26379
# 是否后台启动
daemonize yes
# pid文件路径
pidfile /var/run/redis-sentinel.pid
# 日志文件路径
logfile /var/log/sentinel.log
# 定义工作目录
dir /tmp
# 定义Redis主的别名, IP, 端口,这里的2指的是需要至少2个Sentinel认为主Redis挂了才最终会采取下一步行为
sentinel monitor mymaster 127.0.0.1 6379 2
#若主服务设置了密码需要加上注意顺序必须在sentinel monitor下面
sentinel auth-pass mymaster 123456
# 如果mymaster 30秒内没有响应,则认为其主观失效
sentinel down-after-milliseconds mymaster 30000
# 如果master重新选出来后,其它slave节点能同时并行从新master同步数据的台数有多少个,显然该值越大,所有slave节点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保守的设置为1,同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
sentinel parallel-syncs mymaster 1
# 该参数指定一个时间段,在该时间段内没有实现故障转移成功,则会再一次发起故障转移的操作,单位毫秒
sentinel failover-timeout mymaster 180000
# 不允许使用SENTINEL SET设置notification-script和client-reconfig-script。
sentinel deny-scripts-reconfig yes

修改三台Sentinel的配置文件,如下:

[root@redis-master ~] grep -Ev "^$|#" /usr/local/redis/sentinel.conf 
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /var/log/sentinel.log
dir "/tmp"
sentinel monitor mymaster 192.168.88.136 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

[root@redis-slave01 ~] grep -Ev "^$|#" /usr/local/redis/sentinel.conf 
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /var/log/sentinel.log
dir "/tmp"
sentinel monitor mymaster 192.168.88.136 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

[root@redis-slave02 ~] grep -Ev "^$|#" /usr/local/redis/sentinel.conf 
port 26379
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile /var/log/sentinel.log
dir "/tmp"
sentinel monitor mymaster 192.168.88.136 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

启动Sentinel

启动的顺序:主Redis --> 从Redis --> Sentinel1/2/3
一定要确保顺序正确

[root@redis-master ~] redis-sentinel /usr/local/redis/sentinel.conf 
[root@redis-master ~] ps -ef |grep redis
root     113880      1  0 08:56 ?        00:00:06 redis-sentinel *:26379 [sentinel]
root     113915      1  0 09:05 ?        00:00:03 /usr/local/bin/redis-server 0.0.0.0:6379
root     113966 110044  0 09:24 pts/1    00:00:00 grep --color=auto redis

[root@redis-slave01 ~] redis-sentinel /usr/local/redis/sentinel.conf 
[root@redis-slave01 ~] ps -ef |grep redis
root      42686      1  0 08:57 ?        00:00:06 redis-sentinel *:26379 [sentinel]
root      42717      1  0 09:08 ?        00:00:03 /usr/local/bin/redis-server 0.0.0.0:6379
root      42736   8980  0 09:26 pts/1    00:00:00 grep --color=auto redis

[root@redis-slave02 ~] redis-sentinel /usr/local/redis/sentinel.conf 
[root@redis-slave02 ~] ps -ef |grep redis
root      11922      1  0 05:17 ?        00:00:21 /usr/local/bin/redis-server 127.0.0.1:6379
root      12274      1  0 08:57 ?        00:00:06 redis-sentinel *:26379 [sentinel]
root      12328   3022  0 09:26 pts/0    00:00:00 grep --color=auto redis

Sentinel操作

[root@redis-master ~] redis-cli -p 26379     //哨兵模式查看
127.0.0.1:26379> sentinel master mymaster   //输出被监控的主节点的状态信息

......

127.0.0.1:26379> sentinel slaves mymaster   //查看mymaster的从信息,可以看到有2个从节点

......

127.0.0.1:26379> sentinel sentinels mymaster    //查看其它sentinel(哨兵)信息

到此哨兵服务就此完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值