一、持久化的作用
1.什么是持久化
redis的所有数据保存在内存中,对数据的更新将异步的保存到硬盘上
2.持久化的实现方式
快照:某时某刻数据的一个完成备份-mysql的Dump-redis的RDB
写日志:任何操作记录日志,要恢复数据,只要把日志重新走一遍即可-mysql的 Binlog-Hhase的 HLog-Redis的 AOF
二、RDB
1.什么是RDB
2.触发机制-主要三种方式
第一种:
save(同步)
1 客户端输入save命令----》redis服务端----》同步创建RDB二进制文件
2 会造成redis的阻塞(数据量非常大的时候)
3 文件策略:如果老的RDB存在,会替换老的
4 复杂度 o(n)第二种:
bgsave(异步,Backgroud saving started)
1 客户端输入save命令----》redis服务端----》异步创建RDB二进制文件(fork函数生成一个子进程(fork会阻塞reids),执行createRDB,执行成功,返回给reids消息)
2 此时访问redis,会正常响应客户端
3 文件策略:跟save相同,如果老的RDB存在,会替换老的
4 复杂度 o(n