Redis是内存数据库,所以一旦断电或服务器进程退出,都会丢失数据,所以Redis提供了持久化功能。
RDB(Redis DataBase)Redis默认数据库,快照。 在指定间隔时间内将内存中的数据集快照写入磁盘,即Snapshot快照,恢复数据时直接将快照文件读到内存。 工作原理 当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作:
触发RDB保存
优缺点
优点 | 缺点 |
---|---|
适合大规模数据恢复 | fork进程时会占内存 |
适合数据完整性要求不高 | 需要一定时间间隔触发,可能丢失最后一次修改数据 |
默认即可
AOF(Append Only File)只追加操作的文件。 以日志形式记录每个写操作指令,只追加文件不改写文件,Redis启动时读取该文件来重构数据,即依次执行写指令。 工作原理 AOF 重写和 RDB 创建快照一样,都巧妙地利用了写时复制机制:
优缺点
优点 | 缺点 |
---|---|
更好保证数据完整性 | 恢复数据速度慢 |
aof文件可以读懂 | 运行效率也比rgb慢 |
持久化测试和RGB大同小异,删除aof文件后数据丢失。说一下AOF文件修复: 修改配置开启AOF,进行若干写操作:
然后再次连接redis客户端,报错拒绝连接:
启动修复
眼尖的人儿发现了rdb也有redis-check-rdb,然而rdb文件我们是看不懂的,你可以自己试试(偷懒 )
其实就用官方默认RDB就好了。 引用官网:
原创不易,请勿转载(
本不富裕的访问量雪上加霜) 博主首页:https://blog.csdn.net/qq_45034708