Redis的数据持久化是怎么做的?

Redis的数据持久化

Redis 是一种高性能的内存数据库,为了防止因服务器重启、宕机等情况导致内存中数据丢失,提供了两种数据持久化方式:RDB 和 AOF 。

RDB

是Redis数据库的快照文件,用于在Redis实例宕机时恢复数据。

优点

恢复速度快 :因为 RDB 文件是对整个数据集的快照,恢复数据时直接将 RDB 文件读入内存即可
文件紧凑

缺点

数据安全性低 :由于是按时间间隔生成快照,如果在两次快照间隔期间 Redis 发生宕机,这段时间内的数据修改将会丢失。
生成快照时阻塞主线程

AOP

是Redis操作的追加文件,记录了所有的写命令,用于在Redis实例宕机时重新执行一遍命令来恢复数据。

优点

数据安全性高 :可以配置不同的刷盘策略,如 always(每个写命令都立即同步到磁盘 ),这样即使 Redis 宕机,最多只会丢失一个写命令的数据,数据完整性更好。
写入性能好:AOF 采用追加写的方式,写操作在文件尾部进行,不需要像 RDB 那样进行复杂的快照操作

缺点

文件体积大 :随着时间推移和写操作的不断增加,AOF 文件会越来越大,因为它记录了所有的写命令。
恢复速度慢:恢复数据时需要重放大量的写命令,相比 RDB 直接加载快照文件,AOF 在数据量较大时恢复时间会更长。

相关推荐
FQNmxDG4S16 分钟前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven
热爱运维的小七36 分钟前
告别内存溢出:ActiveMQ 性能诊断与全流程优化
数据库·it运维·activemq·devops
@小柯555m1 小时前
MySql(高级操作符--操作符混合运用)
数据库·sql·mysql
CDN3601 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
bzmK1DTbd1 小时前
JDBC编程规范:PreparedStatement与事务管理
数据库·python·eclipse
卧室小白1 小时前
Redis-哨兵模式
数据库·redis·缓存
GottdesKrieges1 小时前
OceanBase恢复常见问题
java·数据库·oceanbase
卧室小白2 小时前
redis-配置
数据库·redis·缓存
向風而行2 小时前
MySQL详解
数据库·mysql
belldeep3 小时前
本草纲目:如何应用 PostgreSQL 实现【中医药】主题数据库 ?
数据库·postgresql·本草纲目