redis持久化实现原理
2017-05-18 18:44
387 查看
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;//是否写入完全依赖操作系统
这种方式大大降低了数据丢失的风险,但是也带来了一个问题,就是持久化文件不断增长,但是往往只有最后一条命令是有用的
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;//是否写入完全依赖操作系统
这种方式大大降低了数据丢失的风险,但是也带来了一个问题,就是持久化文件不断增长,但是往往只有最后一条命令是有用的
相关文章推荐
- 深入理解Redis主键失效原理及实现机制
- 【Redis】初探dict字典原理的实现(一)
- Redis中主键失效的原理及实现机制剖析
- Redis主从实现原理分析
- Session数据的持久化读取实现原理
- redis:string类型的原理及实现
- memcached&redis等分布式缓存的实现原理
- Session原理、安全以及最基本的Express和Redis实现
- Redis源码阅读笔记(2)——字典(Map)实现原理
- Redis发布订阅实现原理
- Java实现Redis持久化到数据库的关键方法
- redis 的两种持久化方式及原理
- Redis实现原理(2)--字典
- 深入理解Redis主键失效原理及实现机制
- Redis源码中探秘SHA-1算法原理及其编程实现
- Java实现Redis持久化到数据库的关键方法
- Redis实现原理(1)--链表
- redis 的两种持久化方式及原理
- [转]Redis有序集内部实现原理分析
- [转载] redis 的两种持久化方式及原理