Redis 的持久化主要有两大机制: AOF 日志 和 RDB 快照
AOF 日志实现:
配置 appendfsync三个可选值:
Always: 同步写回:每个写命令执行完,立马同步地将日志写回磁盘。
Everysec,每秒写回:每个写命令执行完,只是先把日志写到AOF文件的内存缓冲区,每隔一秒把缓冲区的内容写入磁盘;
NO :操作系统控制写回:每个写命令执行完,只是先把日志写到AOF文件的内存缓冲区,由操作系统决定何时将缓冲区内容写回磁盘。
配置项 | 时机 | 优点 | 缺点 |
Always | 同步写回 | 数据不基本不丢失 | 性能影响大 |
Everysec | 每秒写回 | 性能适中 | 宕机时丢失1秒内数据 |
No | 操作系统控制写回 | 性能好 | 宕机丢失数据较多 |
如何开启AOF 编辑 redis.conf
然后添加 对应配置
2 内存快照(内存中的数据某一个时刻的状态记录) RDB 实现
Redis 提供两个命令来生成RDB文件,分别是save 和bgsave
save : 在主线程中执行,会导致阻塞
bgsave: 创建一个子进程,专门用于写入RDB文件,避免了主线程的阻塞,这也是Redis RDB文件生成的默认配置。
实现RDB: 服务器的关闭会自动停止