目录
Redis是基于内存操作,作为一个数据库也具备持久化能力,但是为了实现高效的读写操作,并不会及时进行数据的持久化,而是按照一定的规则进行持久化操作的。Redis提供了两种持久化策略:
- RDB(Redis DataBase)
- AOF(Append only File)
在满足指定的Redis操作条件时,将内存中的数据以数据快照的方式存储到rdb文件中
RDB是redis默认的持久化策略,当redis中写操作达到指定的次数同时距离上一次持久化达到指定的时间就会将redis内存中数据生成数据快照保存到指定的rdb文件中。
| 900s 1次: | 当操作次数达到1次,900s就会进行持久化 |
| 300s 10次: | 当操作次数达到10次,300s就会进行持久化 |
| 60s 1000次: | 当操作次数达到10000次,60s就会进行持久化 |
操作次数越多,触发持久化的时间间隔就越短(防止数据丢失) ,我们可以通过修改redis.conf文件,来设置RDB策略的触发条件。
- ## rdb持久化策略开关
- rdbcompression yes
-
- ## 配置rdb持久化策略
- save 900 1
- save 300 10
- save 60 10000
在redis.conf文件中除了可以配置rdb的持久化策略,还可以将生成的数据快照存储的文件进行指定。默认是dbfilename dump.rdb。
AOF(Append Only File),当达到设定的触发条件时,将redis执行的写操作指令存储到aof文件中,redis默认是未开启aof持久化的。
redis将每一个成功的写操作写入aof文件中,当redis重启的时候就执行aof文件中的指令以恢复数据
| appendfsync always | 只要进行成功写操作,aof就执行 |
| appendfsync everysec | 每秒进行一次aof(默认) |
| appendfsync no | 让redis执行决定aof |
redis默认是AOF未开启的;可以通过将redis配置文件中‘appendonly no’修改为‘appendonly yes’进行开启 ;AOF也可以设置aof路径,默认是‘appendfilename "appendonly.aof"’