Redis哨兵集群部署 一主两从三哨兵以及持久化
Linux部署Redis哨兵集群 一主两从三哨兵(这里使用Redis6,其它版本类似)_linux redis集群模式部署-CSDN博客
https://juejin.cn/post/7209689211870920764#heading-5
Redis的高可用实现方案:哨兵与集群-阿里云开发者社区
https://www.toutiao.com/article/7121259432465826344
Redis的持久化详解_redis持久化-CSDN博客
Redis 4.0 混合持久化 aof-use-rdb-preamble
【
aof-use-rdb-preamble
的效果在 AOF 重写时才会体现出来,因此确保定期触发 AOF 重写非常重要】# 开启 RDB 持久化
save 900 1
save 300 10
save 60 10000# 开启 AOF 持久化
appendonly yes# 其他 AOF 相关配置
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb# 启用 aof-use-rdb-preamble
aof-use-rdb-preamble yes
Redis恢复数据期间文件校验是怎么做
# 使用 redis-check-aof --fix aof文件 修复文件
[root@iZ8vb7bhe4b8nhhhpavhwpZ sbin]# redis-check-aof --fix appendonly.aof
0x 8b: Expected prefix '*', got: 's'
AOF analyzed: size=151, ok_up_to=139, ok_up_to_line=34, diff=12
This will shrink the AOF from 151 bytes, with 12 bytes, to 139 bytes
# 这里选择y
Continue? [y/N]: y
Successfully truncated AOF
Redis重启后加载日志文件的顺序
混合持久化的加载流程如下
AOF模式中 no-appendfsync-on-rewrite
# 绑定的主机地址,建议填redis安装服务器的业务私网地址
# 这里为了方便直接找到这个配置注释了
#bind 127.0.0.1 -::1# redis进程的端口号 默认是6379
port 6380# 是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问,这里关闭保护模式设置为no。
protected-mode no# redis进程是否以守护进程的方式运行,yes为是(后台运行),no为否(不以守护进程的方式运行会占用一个终端,终端关闭redis服务也会关闭)。
daemonize yes# 指定redis进程的PID文件存放位置
pidfile /var/run/redis_6380.pid# log文件输出位置
logfile /usr/local/redis/redis-6.2.0/node/6380/redis.log# 指定持久化存放目录(默认当前启动时所在目录),因为我这里是一台机器部署的要区分开每个节点持久化文件存放的目录
dir /usr/local/redis/redis-6.2.0/node/6380# 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
requirepass 123456# 当master设置了密码保护时,slave服务连接master的密码
masterauth 123456# 设置主机的 ip+ 端口,来指明主机的redis
replicaof 10.0.20.13 6379# 配置从节点读写权限,支持参数[yes,no],yes:只读 no:支持读写操作,从节点默认yes
replica-read-only yes
#端口默认为26379。
port 26379# 是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问,这里关闭保护模式设置为no。
protected-mode no# redis进程是否以守护进程的方式运行,yes为是(后台运行),no为否(不以守护进程的方式运行会占用一个终端,终端关闭redis服务也会关闭)。
daemonize yes#守护进程pid存储文件(默认位置 /var/run/redis-sentinel.pid)
pidfile /var/run/redis-sentinel_26379.pid#日志文件
logfile /usr/local/redis/redis-6.2.0/sentinel/26379/sentinel.log#sentinel工作目录(默认/tmp)
dir /usr/local/redis/redis-6.2.0/sentinel/26379# 指定Redis主节点主机IP地址和端口,ip根据实际情况调整,mymaster这个名称随便取,下面配置时也需要指定这个名称,客户端连接时也会使用
# 最后的2是指需要有2个以上sentinel节点认为redis主节点失效,才是真的失效,一般为(sentinel总数/2+1)
sentinel monitor mymaster 10.0.20.13 6379 2# 配置连接密码,此处的密码需要与 redis.conf里面配置的连接密码一致
sentinel auth-pass mymaster 123456# 这里设置了主机多少毫秒无响应,则认为挂了,,默认:30000毫秒
sentinel down-after-milliseconds mymaster 30000# 主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1
sentinel parallel-syncs mymaster 1#故障转移的超时时间毫秒,默认:180000毫秒
sentinel failover-timeout mymaster 180000