redis提供了两种数据持久化实现
1,内存快照
将内存中的数据以快照的方式写入二进制文件中,默认文件名为dump.rdb,不过有一个问题就是每次快照都是将内存里面的所有数据写入到文件里面,而不是增量数据,所有有时候会有重复数据,如果写入比较频繁的应用可能效率不是很高
我们还需要在redis.config里面配置如下:
Redis快照写入的频率
save 900 1
save 300 10
save 60 10000
表示多个条件,第一个表示900秒 或者数据更改一次,以此类推,做一次快照,
dbfilename dump.rdb
2,日志追加(aof)
aof就是把增加修改的数据通过write函数追加到文件尾部,默认是appendonly.aof,redis重启的时候读取appendonly.aof中的命令并且执行从而把数据写入到内存中,配置redis.conf如下
appendonly yes;//启动日志追加方式
#appendonly always;/每次增加或者修改就强制写入到磁盘
appendfsync everysec;//每秒强制写入
#appendfsync no;//是否写入完全依赖操作系统
这种方式大大降低了数据丢失的风险,但是也带来了一个问题,就是持久化文件不断增长,但是往往只有最后一条命令是有用的