超简单!Redis 中的持久化策略汇总
🍁 作者:知识浅谈,CSDN 博客专家,华为云云享专家,阿里云签约博主,InfoQ 签约博主
📌 擅长领域:全栈工程师、爬虫、ACM 算法
💒 公众号:知识浅谈
🔥 联系方式 vx:zsqtcc
🤞Redis 中的持久化策略方式汇总🤞
正菜来了⛳⛳⛳
🎈AOF 方式
AOF:是以日志记录的形式记录数据的更新操作,这种方法的持久性更好,一致性更强,因为几乎能够保存 redis 的每一步操作了。
🍮 AOF 持久化策略
always:这个指的是每一次操作之后都是要持久化到 aof 文件中去的,所以就算是极端的情况下也最多丢失一条更新。
everysec:这个是每秒都会把 aof 缓冲中的数据持久化到 aof 文件中去的,所以最多也是丢失一秒的数据更改。
no:这个策略是不做任何操作,有操作系统决定什么时候去把 aof 缓存持久化到 aod 文件,这个放生异常的时候相比于上边的两个丢失的数据相对较多。
🍮AOF 重写
默认 redis 是 RDB 的形式,如果想要使用 AOF 的形式,appendonly yes 这个是开启aof持久化的命令。
本来 aof 持久化的时候是需要把对 redis 进行修改的每一个操作都写到文件中去的,但是因为 aof 存储的命令较多的时候,需要对 aof 文件进行重写,这个重写是指的是 bgrewriteaof,创建一个子线程根据当前内存中 redis 的数据重新写一份 aof 文件,原来的 aof 文件就丢弃了。
🎈RDB 方式
RDB:是以镜像的方式记录某个时刻 redis 中的每个数据,可以通过 bgsave 命令,使用一个子线程去创建一个某个时刻的 redis 中的数据的镜像,当 bgsave 命令的执行的时候 redis 中的数据是 read-only 状态,如果主线程要修改的时候发生缺页中断,会在其他空间先写入数据,等持久化之后再把刚才的数据进行更新。
🎈RDB+AOF:是两种方式的混合方式
在 RDB 持久化之后使用 aof 进行记录来保证尽量做到数据的一致性,在还原数据的时候,先用 rdb 还原基本的数据,再使用 aof 中的日志去 redis 中进行操作。
🎈性能比较:
RDB:还原数据快,占用空间小,但是完整性低。
AOF:完整性高,但是占用空间相比于 RDB 的形式较大,还原数据的时间较长。
🍚总结
以上就是 Redis 持久化的方式的使用策略和优劣势。
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/bec2e1fe30fa4c67c92bb5feb】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论