首页 > 代码库 > redis实战_06_持久化机制

redis实战_06_持久化机制

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。

redis持久化的两种方式:

1 snapshotting(快照)默认方式,将内存中以快照的方式写入到二进制文件中,默认为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内超过m个key则修改就自动做快照。

snapshotting设置:

save 900 #900秒内如果超过1个key被修改则发起快照保存

save 300 10 #300秒内如果超过10个key被修改,则发起快照保存

save 60 10000

 

2 append-only file(缩写aof)的方式,由于快照方式是在一定时间间隔做一次,所以可能发生redis意外down的情况

就会丢失最后一次快照后的所有修改的数据,aof比快照方式有更好的持久化性,是由于在使用aof时,redis会将每一个收到

的写命令都通过write函数追加到命令中,当redis重新启动时会重新执行文件中保存的写命令来在内存中重建这个数据库的内容,

这个文件在bin目录下:appendonly.aof

aof不是立即写到磁盘上,可以通过配置文件修改强制写到硬盘中。

aof设置:

appendonly yes //启动aof持久化方式有三种修改方式

appendfsync always //收到写命令就立即写入到磁盘,效率最慢,但是保证完全的持久化

#appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中

#appendfsync no //完全依赖os性能最好,持久化没保证

 

redis实战_06_持久化机制