搭建集群环境
环境准备: 三台已经部署好的Redis服务器,或者虚拟机
进入 redis-cli,查看redis的信息
info replication
如何配置子节点信息呢
cd /usr/local/redis/
vi redis.conf
从节点也要进行配置密码,当哨兵模式开启,主从节点的变更会导致无密码而不能进行备份
如上配置好以后,从节点就完成了配置。再使用
info replication
查看信息,就能看到主节点信息,此时数据也已经备份到从节点。
当我们停掉主节点时,slave(从)节点依然是从节点,不会自己选举出master(主节点)。
哨兵模式(Sentinel)
当我们的主节点挂掉以后,此时redis只能进行读模式,并不能进行写的状态,此时会产生问题,哨兵模式就是解决master(主节点)挂掉以后的一个监控。哨兵集群做到主从的高可用
- 如何配置哨兵模式
找到哨兵模式的配置文件,在redis的解压文件中
cd /home/software/redis-6.2.1
cp sentinel.conf /usr/local/redis
cd /usr/local/redis
vi sentinel.conf
此处我们打开 protected-mode no 开放所有访问,不设置保护,这个根据实际情况设定
这里我们设置 daemonize 为 yes
此处我们修改为 :/usr/local/redis/sentinel/redis-sentinel.log
此处我们修改为 :/usr/local/redis/sentinel/
此处我们可以修改主节点的名称,主节点的ip和端口号,哨兵的数量
哨兵的数量及工作原理,当配置为2时,当主节点宕机,2台哨兵发现主机点宕机,就会将主节点标记为宕机节点,选择从节点为主节点。
此处修改为:sentinel auth-pass (xxx-master) ( password) 去掉括号选填
为master主节点配置哨兵发现宕机的超时时间。
哨兵模式总结:
一般配置:
port 26379
# 是否开启保护模式,保护模式下只能在配置的ip下进行访问
protected-mode no
#哨兵的进程pid
pidfile "/usr/local/redis/sentinel/redis-sentinel.pid"
#哨兵的工作空间
dir "/usr/local/redis/sentinel"
#是否后台启动
daemonize yes
#日志的记录位置
logfile "/usr/local/redis/sentinel/redis-sentinel.log"
核心配置:
# 配置哨兵 可以修改mastername ip 端口 哨兵数量
sentinel monitor <master-name> 127.0.0.1 6379 2
#密码 修改mastername 和密码 (mastername 同上配置保持一致)
sentinel auth-pass <master-name> <password>
# master被sentinel认定失效的时间
sentinel down-after-milliseconds <master-name> 30000
# 剩余的slaves(从节点)和新的master做数据同步时的并行个数
sentinel parallel-syncs <master-name> 1
#主备切换的超时时间,哨兵做转移,哨兵进程停止后,由新的哨兵进行处理的时间
sentinel failover-timeout <master-name> 180000
哨兵的启动,及启动后的细节
- 启动哨兵模式
redis-sentinel sentinel.conf
#查看日志
tail -f redis-sentinel.log
当主节点宕机后,再进行恢复,不会变成主节点,此时会变为slaves(从节点)。
查看哨兵信息:
# 连接master的地址
redis-cli -p 26379
#查看master的信息
sentinel master <master-name>
# 查看slaves(从节点)信息
sentinel master <master-name>
# 查看哨兵信息
sentinel sentinels <master-name>
哨兵的约束条件:
- 哨兵节点要求有至少3个或者奇书个数,一般计算方式为节点数除以2加1计算(几点数为配置的节点,并非为哨兵的每个节点个数)。
- 哨兵应该分布式部署在不同的计算机节点
- 一组哨兵默认只监听一组主从
缓存过期处理与内存淘汰机制
- (主动)定期删除 --默认1秒中10次抽查,key 设置了过期时间会进行删除。
- (被动)惰性删除 – 当请求到一个过期的key时,redis会进行检测。过期的会将其删除。
内存淘汰管理机制