[Redis]——Redis持久化的两种方式RDB、AOF

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: [Redis]——Redis持久化的两种方式RDB、AOF

RDB快照模式

概念

       RDB模式就是保存当前Redis的状态到本地磁盘文件,生成一个xxx.rdb文件,实现数据持久化。

触发时机

       当Redis退出时,会触发save命令,保存快照,当Redis运行时,如果某个时间段有几个Key被修改了,可能触发bgsave命令,这取决于配置文件,例如 每30秒有1个key被修改。此外bgsave命令是开启子线程做快照操作。

异步做快照


AOF追加模式

概念:

       将每一条Redis命令存到aof文件里面,并且对相同Key的修改也不会覆盖前面的命令。

触发时机:
  • 也是根据配置文件的信息
  • appendsync always - 每执行一条命令,操作内存的同时也更新磁盘
  • appendsync everysec - 操作内存的同时更新AOF缓存,每一秒,将AOF缓存文件更新到磁盘
  • appendsync no - 操作内存的同时更新AOF缓存,由操作系统决定何时写入磁盘。
bgrewriteaof命令:

       为减小aof文件的大小,可以对该文件进行压缩。还是根据配置文件的参数,auto-aof-rewrite-percentage 100 如果文件比上次文件增长超过1倍,触发bgrewriteaof命令,auto-aof-rewrite-min-size 64mb aof文件触发自动重写命令的最小体积


比较两种模式:

  • 使用场景:RDB高性能,AOF数据高一致性
  • 文件大小:RDB文件小,只保留最后一次修改的数据,AOF保存每一条命令
  • 持久化方式:RDB定时做快照,AOF记录每一次执行命令
  • 宕机恢复:RDB快,AOF慢
  • 系统资源占用:RDB因为是对整个数据库做快照,所以大量消耗CPU和内存,AOF追加命令,主要占用磁盘IO,但重写时会占用大量CPU和内存。
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
26天前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
27天前
|
存储 缓存 NoSQL
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)
|
29天前
|
存储 NoSQL Redis
Redis 文件总大小问题之计算待加载AOF文件总大小如何解决
Redis 文件总大小问题之计算待加载AOF文件总大小如何解决
|
29天前
|
NoSQL Redis
Redis AOF重写问题之减少CPU和fork开销如何解决
Redis AOF重写问题之减少CPU和fork开销如何解决
|
29天前
|
NoSQL Redis
Redis 临时manifest修改问题之确保被持久化到磁盘如何解决
Redis 临时manifest修改问题之确保被持久化到磁盘如何解决
|
29天前
|
NoSQL Redis 数据库
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
|
22天前
|
监控 NoSQL Redis
Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
|
25天前
|
NoSQL Redis
【Azure Redis】Redis导入备份文件(RDB)失败的原因
【Azure Redis】Redis导入备份文件(RDB)失败的原因
|
25天前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入
【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入