redis 两种持久化方式

RDB

全名:Redis Data Base

机制:就是redis会按照配置文件,当你的操作达到一定条件的时候,redis系统自动进行数据备份

备份的文件类型:.rdb

触发的配置条件:15分钟修改一次,5分钟修改10次,1分钟修改10000次(默认)

备份命令:

// 数据库操作停止,进行数据备份操作
save 900 1 //15分钟修改1次

// 复制当前进程,进行数据备份
bgsave 300 10 //5分钟修改10次

涉及的配置:

// 是否压缩数据,默认为 yes,
// Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大 
rdbcompression yes

// 指定本地数据库文件名,默认值为 dump.rdb 
dbfilename dump.rdb

// 指定本地数据库存放目录 
dir ./

AOF

全名:Append Only File

机制:会把用户对redis进行的增删改操作的命令进行记录,数据恢复时,会把这些命令再执行一遍

备份的文件类型:.aof

触发的条件:通过修改配置文件配置(一般每秒持久化一次)

修复aof命令:

redis-check-aof --fix appendonly.aof

// 如果aof和rdb同时开启的时候,redis会默认先加载aof,如果aof文件有问题,redis会启动失败

涉及的配置:

// 是否开启aof(默认时no)
appendonly no

// 持久化的频率
appendfsync everysec // 每秒持久化一次(默认)
            always // 每次操作持久化       
            no // 从不持久化

// 指定更新日志文件名,默认为 appendonly.aof 
appendfilename appendonly.aof

// 当aof文件达到一定大小或最大元素超过临界值就会压缩重写 
hash-max-zipmap-entries 64 (M) // 一般会设置的相对大一些(4~5G)
hash-max-zipmap-value 512

 

对比:

相同数据集大小,RDB所占内存比AOF小

相同使用Fsync策略,RDB的速度也比AOF快

但是,由于rdb触发的条件的限制,导致RDB的数据完整性没有AOF高


一般请款下,都是它俩配合使用,用各其长。

发布了214 篇原创文章 · 获赞 281 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/lk1822791193/article/details/103412690