🍁 作者:知识浅谈,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持久化的方式的使用策略和优劣势。