Redis持久化

2018-12-07  本文已影响0人  spiderM

一、持久化的作用

redis所有的数据都存在内存中,对数据的更新将异步地保存到磁盘上。
1.什么是持久化?
数据从内存保存到磁盘的过程叫做持久化。
2.持久化的方式

二、RDB

是Redis内存到硬盘的快照,用于持久化


RDB

RDB触发机制
1.save命令
client执行save命令,redis就会生成一个RDB文件默认叫dump.rdb(以旧换新的策略)。是一个同步命令,会阻塞客户端命令
2.bgsave命令
client执行bgsave命令,会交给后台子进程执行(fork),不会阻塞Redis但是fork新进程

save与bgsave的比较

3.自动生成RDB

4.其他方式

RDB存在的问题
1.O(n):耗时
2.fork():消耗内存,copy-on-write策略(写的时候先把文件拷贝一份,往拷贝的文件里写,然后再引用这个副本)
3.DiskI/O:IO消耗
4.当出现宕机的情况导致文件没有写完

三、AOF

运行原理

AOF运行原理-创建

当发生宕机之后,通过AOF文件进行完整的恢复

AOF的三种策略
Redis写文件首先是将内容写到缓冲区中,然后根据不同的策略刷新至磁盘中。
1.always:每一条命令刷新一次
2.everysc:每一秒刷新一次
3.no:操作系统决定

四、RDB和AOF的抉择

image.png
上一篇 下一篇

猜你喜欢

热点阅读