redis持久化方式有两种,分别是rdb和aof,本文将会详细介绍两种方式的具体实现与详解,并在合适场景使用哪种持久化方式给出明确的选择。
首先,搬运一下官方文档的解释。
翻译:Redis 提供了多种不同级别的持久化方式:
· RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
· AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。
· Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。
· 你甚至可以关闭持久化功能,让数据只在服务器运行时存在。
官方文档明确给出两种方式是以什么形式来保证redis持久化,rdb就是时间点快照,aof是把redis所有写操作的命令进行记录,两种方式各有利弊。
RDB:
Redis通过创建快照来获得存储在内存里面的数据在某个时间节点上的副本。
主要是有2中方式,save(同步),bgsave(异步)
RDB 功能最核心的是 rdbSave 和 rdbLoad 两个函数, 前者用于生成 RDB 文件到