首页 > 数据库 >【Redis】RDB AOF

【Redis】RDB AOF

时间:2022-09-29 18:46:36浏览次数:59  
标签:AOF 文件 Redis RDB 进程 数据

AOF和RDB是两种redis持久化的机制。

RDB:
RDB是将支持当前数据的快照存成一个数据文件的持久化机制。
1.在生成快照时,将当前进程fork出一个子进程.
2.然后在子进程中循环所有的数据,将数据写入到二进制文件中。
3.当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件,然后子进程退出。
优点:
1.一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这样非常方便进行备份。比如你可能打算每1天归档一些数据。
2.方便备份的同时,我们也很容易的将一个RDB文件移动到其他存储物质上。
3.RDB 可以最大化 Redis 的性能:父进程在保存 RDB 文件时唯一要做的就是 fork 出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无须执行任何磁盘 I/O 操作。
劣势:
如果你想在服务器上避免数据的丢失,那么RDB就不适合了,因为RDB文件需要保存整个数据集的状态,因为你可能会在5分钟才保存一次RDB文件,在这种情况下,一旦发生故障停机,你可能会损失好几分钟的数据。
每次在保存RDB的时候,Redis都要fork出一个子进程,并由子进程来进行实际的持久化工作,如果在数据集比较庞大时,fork可能会非常耗时,造成服务器在那么一瞬间会停止处理客户端;虽然AOF重写也需要进行fork,但AOF重写的执行时间间隔有多长,数据的耐久性都不会有任何损失。


AOF:
AOF: Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。AOF的工作原理就是是将写操作追加到文件中,文件的冗余内容会越来越多。所以Redis 新增了重写机制。当AOF文件的大小超过所设定的最大值时,Redis就会对AOF文件的内容压缩。
优点:数据的完整性和一致性更高
缺点:因为AOF记录的内容多,文件会越来越大,数据恢复也会越来越慢。


总结
Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,将内存中的数据写入到磁盘中。
RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。
Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。
AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。
Redis 针对 AOF文件大的问题,提供重写的瘦身机制。
若只打算用Redis 做缓存,可以关闭持久化。
若打算使用Redis 的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。

标签:AOF,文件,Redis,RDB,进程,数据
From: https://www.cnblogs.com/cuipengchong/p/16742423.html

相关文章

  • 基础篇Redis
    1.初识Redis1.1.关系型与非关系型的差异存储方式关系型数据库基于磁盘进行存储,会有大量的磁盘IO,对性能有一定影响非关系型数据库,他们的操作更多的是依赖于内存来操......
  • redis分布式锁探讨
     基于jedis的能力,探讨了分布式锁的一些初级实现publicclassDistributeLock{privateJedisClusterjedisCluster;publicDistributeLock(){Se......
  • redis基础
    一、五大数据类型1、Redis键(key)①、首先创建一些key,并赋上对应值:redis127.0.0.1:6379>SETw3c1redisOKredis127.0.0.1:6379>SETw3c2mysqlOKredis127.0......
  • Redis(四)持久化
    官网介绍:http://www.redis.ioRedis提供了2个不同形式的持久化方式。RDB(RedisDataBase)AOF(AppendOfFile)第一章RDB(RedisDataBase)1.1官网介绍1.2RDB是什么?......
  • Lua 脚本在 Redis 事务中的应用实践
    Lua脚本在Redis事务中的应用实践使用过Redis事务的应该清楚,Redis事务实现是通过打包多条命令,单独的隔离操作,事务中的所有命令都会按顺序地执行。事务在执行的过程中,......
  • Lua 脚本在 Redis 事务中的应用实践
    Lua脚本在Redis事务中的应用实践使用过Redis事务的应该清楚,Redis事务实现是通过打包多条命令,单独的隔离操作,事务中的所有命令都会按顺序地执行。事务在执行的过程中......
  • 原生 Redis 跨数据中心双向同步优化实践
    原生Redis跨数据中心双向同步优化实践一、背景公司基于业务发展以及战略部署,需要实现在多个数据中心单元化部署,一方面可以实现多数据中心容灾,另外可以提升用户请求访问......
  • 原生 Redis 跨数据中心双向同步优化实践
    原生Redis跨数据中心双向同步优化实践一、背景公司基于业务发展以及战略部署,需要实现在多个数据中心单元化部署,一方面可以实现多数据中心容灾,另外可以提升用户请求访问......
  • Redis Stream实现全部节点机器推送消息
    背景有时候,在微服务时代,我们需要对全部的机器节点进行通知。在常规情况下,一个请求经过负载均衡只有一个机器可以收到。那么,如何能让全部的机器都收到同样的请求呢?需要借助......
  • linux 安装Redis以及使用
    安装redisyuminstallredis 安装完毕后,使用下面的命令启动redis服务设置redis为开机自动启动chkconfigredison 进入redis服务#进入本机redisredis-cli......