介绍
Redis是一个高性能的key-value 数据库,完全开源,遵守BSD协议。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供了list、set、zset、hash等数据结构的存储。
Redis有很多应用场景,其中最常见的是作为缓存。Redis的读写性能优异,逐渐有取代memcached,成为首选服务端缓存的组件此外,Redis还可以用于计数器、消息队列、分布式锁、会话缓存等场景。
在JumpServer中,Redis主要用于存储会话信息和任务队列。
本文介绍了在Rocky 下载的安装配置哨兵模式。
环境
Redis版本: 6.27
系统:Rocky Linux 8.8 (关闭SElinux,关闭防火墙)
安装
1
2
3
4
5
6dnf module install redis:6
systemctl enable --now redis
systemctl status redis
基础配置
1
2
3
4vim /etc/redis.conf
# 修改业务配置
配置绑定IP(默认绑定lookback,监听6379端口)
1
2
3
4
5
6#bind 127.0.0.1 -::1
bind * -::*
# 注释原来的配置,配置绑定所有IPv4和IPv6地址
配置访问密码(默认无密码)
1
2requirepass pass123
配置内存满载策略(默认为noeviction 即不做任何淘汰)
1
2
3
4maxmemory-policy allkeys-lru
# 从所有的键中选择最近最少使用的键进行淘汰。
配置最大使用内存(默认无限制)
1
2
3
4maxmemory 512MB
# 默认数字单位为bytes,可根据业务和实际物理内存配置。
重启生效
1
2
3
4
5
6
7
8systemctl restart redis
systemctl status redis
redis-cli --version
# 查看版本
PS:至此,单机部署已完成。
配置哨兵(sentinel)模式
Redis哨兵模式是Redis在主从复制基础上构建的一套高可用解决方案,它可以自动监控Redis主节点和从节点的状态,当主节点出现故障时,哨兵会自动将一个从节点切换为新的主节点,以保证系统的高可用性。哨兵模式的优势包括:
自动故障转移:当主节点出现故障时,哨兵会自动将一个从节点切换为新的主节点,以保证系统的高可用性。
自动配置提醒:哨兵会自动监控Redis主节点和从节点的状态,并在发现异常时发送邮件或短信提醒管理员。
自动恢复:当Redis主节点恢复正常时,哨兵会自动将其切换回主节点,并将之前选举出来的从节点切换回从节点。
优缺点
优点:
对节点进行监控,来完成自动的故障发现与转移
缺点:
特别是在主从切换的瞬间存在访问瞬断的情况,等待时间比较长,至少十来秒不可用。
哨兵模式只有一个主节点对外提供服务,没法支持很高的并发
单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率。
PS:与主从相比,哨兵仅解决了手动切换主从节点问题,至于其他的问题,基本上仍然存在。
节点规划(哨兵要奇数个,建议3节点起步)
主机名 | 角色 | IP地址 |
---|---|---|
Redis_S1 | Master | 192.168.205.1 |
Redis_S2 | slaves | 192.168.205.2 |
Redis_S3 | slaves | 192.168.205.3 |
配置主从复制
Redis_S1 主节点配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19vim /etc/redis.conf
protected-mode no
# 关闭保护模式,默认为打开的。关闭此模式是为了让slaves连接进来。
masterauth pass123
# 配置访问密码,slaves也要配置对应的masterauth密码。
bind * -::*
# 配置绑定IP
maxmemory-policy allkeys-lru
maxmemory 512MB
Redis_S2 从节点配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23vim /etc/redis.conf
protected-mode no
# 关闭保护模式,默认为打开的。
requirepass pass123
# 配置访问密码,slaves也要配置对应的masterauth密码。
replicaof 192.168.205.1 6379
# 从节点配置,配置主节点的IP
bind * -::*
# 配置绑定IP
maxmemory-policy allkeys-lru
maxmemory 512MB
Redis_S3 从节点配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22vim /etc/redis.conf
protected-mode no
# 关闭保护模式,默认为打开的。
requirepass pass123
# 配置访问密码,slaves也要配置对应的masterauth密码。
replicaof 192.168.205.1 6379
# 从节点配置,配置主节点的IP
bind * -::*
# 配置绑定IP
maxmemory-policy allkeys-lru
maxmemory 512MB
配置NTP
确保所有节点为同一个NTP服务器。
要确保所有节点时间一致
1
2
3
4
5
6
7
8timedatectl
# 查看时区
dnf install chrony -y
# 安装NTP工具1
2
3
4
5
6
7
8
9
10
11
12
13
14vim /etc/chrony.conf
# pool 2.rocky.pool.ntp.org iburst
server ntp.aliyun.com iburst
# 注释或删除默认的NTP服务器,配置为阿里云NTP
systemctl enable --now chronyd
systemctl restart chronyd
systemctl status chronyd
# 配置开机启动,重启,查看NTP是否生效。
所有节点
1
2
3
4systemctl restart redis
# 重启配置生效
验证主从配置
1
2
3
4
5
6redis-cli
127.0.0.1:6379> AUTH password
127.0.0.1:6379> info replication
# 输入密码查看状态
哨兵模式配置
每节点配置启动
1
2
3
4
5
6
7
8systemctl enable --now redis-sentinel
systemctl status redis-sentinel
ss -an | grep 26379
# 哨兵服务默认监听端口号26379
每节点修改配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30vim /etc/redis-sentinel.conf
sentinel monitor mymaster 192.168.205.1 6379 2
# 配置监控主节点的IP、端口号、2代表多少个Sentinel实例认为主服务器不可用,才会触发自动故障转移。
sentinel auth-pass mymaster pass123
# 主节点的密码
sentinel down-after-milliseconds mymaster 10000
# 指定Sentinel在多长时间内未收到来自主服务器的回复后,将主服务器标记为主观下线。
# 单位为毫秒
sentinel parallel-syncs mymaster 1
# 用于指定在自动故障转移期间,最多可以有多少个从服务器同时对新的主服务器进行同步。
# 为1即可
requirepass songxwn.com
# 哨兵本身的连接密码
PS:mymaster为自定义名称
所有节点
1
2
3
4
5systemctl restart redis-sentinel
# 重启配置生效
检查
1
2redis-cli -p 26379 info sentinel
JumpServer接入配置
v2.28.0 开始支持哨兵模式。
1
2
3
4
5
6
7
8# 编辑配置文件
vim /opt/jumpserver/config/config.txt
# 配置Redis 哨兵模式配置
REDIS_SENTINEL_HOSTS=mymaster/哨兵1:26379,哨兵2:26380,哨兵3:26381
REDIS_SENTINEL_PASSWORD=xxxxfrthnjggdrthdf
REDIS_PASSWORD=qwertysdftgyhjfggs
参考
https://blog.csdn.net/m0_45406092/article/details/116171758
https://computingforgeeks.com/deploy-ha-redis-cluster-sentinel-rocky-alma/
https://ost.51cto.com/posts/11516
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://zblog.hqyman.cn/post/10650.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~