如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件说明,Redis命令和数据类型说明。
Redis 持久化是指将 Redis 数据存储到磁盘上,以便在 Redis 服务器重启后能够恢复数据的过程。Redis 提供了两种主要的持久化方式:
RDB 持久化(Redis Database)
AOF 持久化(Append-Only File)
Redis 还提供了混合持久化的方式,即同时使用 RDB 持久化和 AOF 持久化。这种方式可以兼顾快速恢复和数据安全性。
Redis 还支持无持久化的模式,也就是不将数据持久化到磁盘,只保留在内存中。这种模式适用于对数据持久化要求不高或者仅用于缓存的场景。
持久化原理
配置基本语法:save
打开RDB持久化
# 这里表示当时间超过900秒且至少有1个key变化时触发RDB持久化
save 900 1
# 这里表示当时间超过300秒且至少有10个key变化时触发RDB持久化
save 300 10
# 这里表示当时间超过60秒且至少有10000个key变化时触发RDB持久化
save 60 10000
关闭RDB持久化
save ""
持久化其他配置
# RDB 持久化文件名
dbfilename dum.rdb
# 持久化文件目录
dir /var/lib/redis/6379
# 是否开启压缩
rdbcompression yes
# RDB文件校验位
rdbchecksum yes
检查RDB文件内容
redis-check-rdb dump.rdb
[root@yiqifu-redis 6379]# redis-check-rdb dump.rdb
[offset 0] Checking RDB file dump.rdb
[offset 26] AUX FIELD redis-ver = ‘6.0.6’
[offset 40] AUX FIELD redis-bits = ‘64’
[offset 52] AUX FIELD ctime = ‘1697161255’
[offset 67] AUX FIELD used-mem = ‘865296’
[offset 83] AUX FIELD aof-preamble = ‘0’
[offset 85] Selecting DB ID 0
[offset 125] Checksum OK
[offset 125] \o/ RDB looks OK! \o/
[info] 3 keys read
[info] 0 expires
[info] 0 already expired
持久化原理
持久化配置
打开AOF持久化(默认是关闭的)
appendonly yes
关闭AOF持久化
appendonly no
持久化其他配置
# AOF 持久化文件名
appendfilename "appendonly.aof"
# 持久化文件目录
dir /var/lib/redis/6379
# AOF 持久化级别(写入磁盘的速度)
# 可配置为 alway=始终,everysec=每秒,no=根据系统缓冲区大小(4k)满flush决定。
appendfsync everysec
# 当在执行RDB持久化时,是否继续执行AOF持久化,默认是不执行
no-appendfsync-on-rewrite no
# 是否开启AOF和RDB混合模式
aof-use-rdb-preamble yes
# AOF 持久化自动重写触发条件配置,重写会对AOF文件进行压缩,如果开启混合模式会加入RDB方案。
# 后续每次触发重写的条件是前一次触发重写后,再超过100%时触发重写
auto-aof-rewrite-percentage 100
# 开机后当aof文件达到64MB时会触发重写
auto-aof-rewrite-min-size 64mb
检查AOF文件内容
redis-check-aof appendonly.aof
[root@yiqifu-redis 6379]# redis-check-aof appendonly.aof
AOF analyzed: size=120, ok_up_to=120, diff=0
AOF is valid
AOF 持久化旧版文件内容解析(没有压缩之前通过 cat appendonly.aof 命令可以查看)
*2
$6
SELECT
$1
0
*3
$3
set
$3
aaa
$3
111
*3
$3
set
$3
bbb
$3
222