redis持久化

xiaoxiao2025-08-29  12

redis版本4.0.11

RDB持久化

redis默认开启了rdb存储,保存在redis目录下的dump.rdb,策略如下

save 900 1 save 300 10 save 60 10000

如果满足900秒内有1个键值被改动,则自动保存一次数据集 如果满足300秒内有10个键值被改动,则自动保存一次数据集 如果满足60秒内有10000个键值被改动,则自动保存一次数据集

AOF持久化

默认不开启,需要在redis.conf中开启

appendonly yes appendfilename "appendonly.aof" #appendfsync always appendfsync everysec #appendfsync no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb

appendonly默认是no,改为yes就开启了AOF持久化,默认文件名称为appendonly.aof

修改appendfilename可以修改默认文件名称

追加同步操作appendfsync有三个选项 always:每当有新命令追加到AOF文件都会执行一次fsync,非常慢也非常安全 everysec:每隔一秒执行一次fsync,足够快,即使数据丢失也只是一秒的数据 no:从不进行fsync,将数据交给操作系统处理,更快却更不安全

aof文件相当于一个命令日志,每当有一条命令执行,都会被追加到文件末尾,例如我们循环执行100次set操作,就会有100条记录,虽然99条记录都是多余的,此时我们就需要缩减aof文件

方法一:
cd redis根目录/src/redis-cli 127.0.0.1:6379>bgrewriteaof

通过命令行来手工执行rewrite操作,此时我们在看aof文件,确实比原来少了很多。

方法二:

通过配置文件auto-aof-rewrite-percentage和auto-aof-rewrite-min-size和参数,当aof文件满足条件的时候自动触发rewrite操作。 auto-aof-rewrite-percentage:aof重写百分比 auto-aof-rewrite-min-size:aof重写最小值 两个条件相辅相成,只有同时满足才会触发rewrite操作。 例如你原来的aof文件为2MB,即使现在已经达到4MB,满足了auto-aof-rewrite-percentage的100%的条件,但是由于auto-aof-rewrite-min-size最小值为64MB,不满足,所以仍然不会触发rewrite操作。

结尾小彩蛋

如果auto-aof-rewrite-percentage为0,则禁用自动重写特性。

转载请注明原文地址: https://www.6miu.com/read-5035420.html

最新回复(0)