浅谈AOF模式和RDB模式

AOF模式:
把写操作指令,持续的写到一个类似日志文件里(appendonly.aof)。(类似于从postgresql等数据库导出sql一样,只记录写操作),粒度较小,crash之后,只有crash之前没有来得及做日志的操作没办法恢复。优先级比RDB模式要高,开启后RDB模式不生效。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。
(1)特点:
1.可以实时数据备份,安全性更好
2.持久化速度较RDB模式慢
3.AOF持久化文件的体积会很大
4.恢复数据时会将日志中记录的所有操作都执行一遍,因此速度会很慢
5.持久化文件明文保存,没有加密
(2)持久化策略(见配置文件):
#appendfsync always 每次操作都会备份
#appendfsync no 关闭AOF模式
#appendfsync everysec 每秒备份一次
(3)持久化文件名称及持久化文件保存路径
在这里插入图片描述
2.AOF模式持久化文件保存路径
dir ./
RDB模式:
RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集。 这种文件非常适合用于进行备份: 比如说,你可以在最近的 24 小时内,每小时备份一次 RDB 文件,并且在每个月的每一天,也备份一个 RDB 文件。 这样的话,即使遇上问题,也可以随时将数据集还原到不同的版本。RDB 非常适用于灾难恢复(disaster recovery):它只有一个文件,并且内容都非常紧凑,可以(在加密后)将它传送到别的数据中心,或者亚马逊 S3 中。RDB 可以最大化 Redis 的性能:父进程在保存 RDB 文件时唯一要做的就是 fork 出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无须执行任何磁盘 I/O 操作。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
(1)特点:
RDB模式定期将内存中的数据持久化.如果用户允许丢失少量的数据则首选RDB模式,因为RDB模式定期为内存做快照,该方式的备份的速度很快.
(2)持久化策略(见配置文件):
save 900 1 在15分钟内,如果用户执行了一次set操作则持久化一次
save 300 10 在5分钟内,如果用户执行了10次set操作则持久化一次
save 60 10000 在1分钟内,如果用户执行了10000set操作则持久化一次
(3)持久化文件名称及持久化文件保存路径
在这里插入图片描述
dir ./ 代表当前当前夹 建议使用绝对路径
应用选择:
一般来说,如果想达到足以媲美 PostgreSQL 的数据安全性, 你应该同时使用两种持久化功能。如果你非常关心你的数据,但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久化。有很多用户都只使用 AOF 持久化, 但我们并不推荐这种方式: 因为定时生成 RDB 快照(snapshot)非常便于进行数据库备份, 并且 RDB 恢复数据集的速度也要比 AOF 恢复的速度要快 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值