redis持久化机制、主从哨兵架构原理

本文详细介绍了Redis的持久化机制,包括RDB、AOF和混合模式,以及它们各自的优缺点。此外,还阐述了Redis的主从架构、数据备份与恢复、哨兵架构和SpringBoot项目配置哨兵的方法。主从复制涉及全量和部分数据同步,哨兵架构用于高可用性,确保在主节点故障时能自动切换。
摘要由CSDN通过智能技术生成

持久化机制与主从架构

redis有三种持久化机制:RDB、AOF、混合模式

RDB

是redis默认的持久化机制

# 比如redis.conf文件中默认就会开启以下配置,意思是60秒内如果 有1万个key改变就会触发RDB持久化
save 900 1
save 300 10
save 60 10000

持久化的文件的文件名与文件存储路径的配置在redis.conf文件中是下面的配置

dbfilename dump.rdb
dir ./

RDB持久化的方式有两种:

  • save

    这条命令在执行时是单线程的,在备份生成rdb文件时会阻塞用户的操作

  • bgsave

    rdb持久化底层默认使用的是bgsave

    就重新fork一个线程来进行数据备份,不会阻塞用户的操作。在备份过程中如果用户进行了更新操作,这块数据就会被复制一份,生成该数据的副本。然后,bgsave 子进程会把这个副本数据写入 RDB 文件,而在这个过程中,主线程仍然可以直接修改原来的数据。

RDB的优点就是文件体积小、重启恢复数据快

缺点是可能会丢失一段时间的数据,因为我们不可能每秒钟去生成一个rdb文件



AOF

如果要开启AOF持久化我们需要在redis.conf文件中放开下面这一行的配置改为yes

appendonly yes

生成的aof文件名与文件生成目录的配置如下

appendfilename "appendonly.aof"
dir ./

dir这个配置项即指定rdb文件的目录也指定aof文件的目录

AOF文件的触发策略

# appendfsync always
appendfsync everysec
# appendfsync no
  • always:每一次更新都会把命令持久化到aof文件中
  • everysec:默认项,每秒钟持久化一次
  • no:不主动进行持久化,让操作系统在需要的时候刷新数据

aof文件存储内容的格式如下所示

# 执行的原命令
set name hs

# aof文件持久化内容
*3
$3
set
$4
name
$2
hs

其中*3表示这个命令有三个参数:set key  value
$3表示下来来这个参数的长度为3,比如set就是3位   name是4位   hs为2位

AOF文件的优点是数据安全性更高,不会丢失很多数据

缺点是文件更大、数据恢复时间慢

AOF文件重写

aof触发文件重写的配置项的

# 其中100是百分比,达到64m就会触发一次文件重写,aof文件自上一次重写后文件大小增长了100%则再次触发重写
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

底层其实就是相当于执行一次bgrewriteaof命令

比如我现在执行很多次自增操作

127.0.0.1:6379> set number 1
OK
127.0.0.1:6379> incr number
(integer) 2
127.0.0.1:6379> incr number
(integer) 3
127.0.0.1:6379> incr number
(integer) 4
127.0.0.1:6379> incr number
(integer) 5

而aof文件中的内容如下所示

[root@VM-8-7-centos redis-5.0.3]# cat appendonly.aof 
*3
$3
set
$6
number
$1
1
*2
$4
incr
$6
number
*2
$4
incr
$6
number
*2
$4
incr
$6
number
*2
$4
incr
$6
number

此时我手动执行bgrewriteaof命令

127.0.0.1:637
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值