首页 > 数据库 >Redis持久化之 混合持久化

Redis持久化之 混合持久化

时间:2023-07-01 17:36:07浏览次数:41  
标签:AOF 持久 文件 Redis 混合 RDB 数据

Redis 混合持久化

什么是混合持久化

如何开启混合持久化

  • 要开启混合持久化,需要在 redis.conf 文件中设置以下参数:
    • appendonly yes 开启 AOF 持久化
    • aof-use-rdb-preamble yes 开启混合持久化
  • 开启混合持久化后,可以通过以下命令触发 AOF 重写:
    • bgrewriteaof 在后台执行 AOF 重写
    • config set auto-aof-rewrite-percentage <percentage> 设置 AOF 文件增长百分比阈值,当达到该阈值时自动执行 AOF 重写
    • config set auto-aof-rewrite-min-size <size> 设置 AOF 文件增长最小字节数阈值,当达到该阈值时自动执行 AOF 重写

如何恢复混合持久化的数据

  • 恢复混合持久化的数据和恢复 AOF 持久化的数据过程是一样的,只需要把 appendonly.aof 文件放到 redis 的根目录,在 redis 启动时,只要开启了 AOF 持久化,redis 就会自动加载并恢复数据
  • 恢复混合持久化的数据的步骤是:
    • 首先读取 AOF 文件中的 RDB 部分,将其中的键值对加载到内存中
    • 然后读取 AOF 文件中的 AOF 部分,按顺序执行其中的命令,更新内存中的数据

混合持久化的注意事项

  • 混合持久化虽然有很多优点,但也有一些需要注意的地方:
    • 如果 RDB 部分损坏或丢失,那么整个 AOF 文件都无法恢复数据
    • 如果 AOF 部分损坏或丢失,那么只能恢复 RDB 部分的数据,可能会有一些数据丢失
    • 如果在执行 AOF 重写时发生故障或中断,那么可能会导致旧的 AOF 文件被覆盖或删除,造成数据丢失
  • 因此,在使用混合持久化时,需要定期备份 AOF 文件,以防止数据丢失

总结

  • 混合持久化是 redis 4.0 之后引入的一种新的持久化方式,它结合了 RDB 和 AOF 的优点,既可以保证数据的快速恢复,又可以保证数据的完整性和一致性
  • 混合持久化的实现方式是在 AOF 重写时,将 RDB 文件以二进制压缩格式写入到 AOF 文件的开头,之后的数据再以 AOF 格式追加到文件的末尾
  • 混合持久化的优点是可以减少 AOF 文件的大小,加快数据恢复的速度,避免数据丢失
  • 混合持久化的缺点是如果 RDB 部分或 AOF 部分损坏或丢失,那么整个 AOF 文件都无法恢复数据或只能恢复部分数据
  • 在使用混合持久化时,需要定期备份 AOF 文件,以防止数据丢失

标签:AOF,持久,文件,Redis,混合,RDB,数据
From: https://www.cnblogs.com/shoshana-kong/p/17519577.html

相关文章

  • Redis群集​
    在centos01安装配置ntp服务器,Centos到centos06配置同步时间,在centos01到centos06安装redis服务器在centos02到centos06修改配置文件开启群集功能,查看节点监听发端口信息在centos01配置redis复制群集查看群集状态,添加删除群集节点,转移卡槽信息修改服务器配置文件重新时间服务器从red......
  • Redis数据结构——快速列表(quicklist)1
    Redis数据结构——快速列表(quicklist)一、什么是quicklistquicklist是Redis3.2版本以后针对链表和压缩列表进行改造的一种数据结构,是zipList和linkedList的混合体,相对于链表它压缩了内存。进一步的提高了效率。quicklist其实就是简单的双链表,但每个双链表节点中保存......
  • Redis数据结构——快速列表(quicklist)
    Redis数据结构——快速列表(quicklist)一、什么是quicklistquicklist是Redis3.2版本以后针对链表和压缩列表进行改造的一种数据结构,是zipList和linkedList的混合体,相对于链表它压缩了内存。进一步的提高了效率。quicklist其实就是简单的双链表,但每个双链表节点中保存......
  • 多端全栈项目实战:大型商业级代驾业务全流程落地SpringCloudAlibaba+Mysql+Redis+Docke
    多端全栈项目实战:大型商业级代驾业务全流程落地SpringCloudAlibaba+Mysql+Redis+Docker+Uniapp+Vue3随着移动互联网的快速发展和智能手机的普及,代驾服务成为了一个日益火热的行业。在这个行业中,如何构建一个具备商业级可靠性和扩展性的代驾业务系统成为了关键问题。本文将介绍一......
  • 使用Redis时的vm.overcommit_memory内存分配控制
    最近在使用Redis的时候遇到了linux系统中的vm.overcommit_memory参数设置,对此不是很了解,于是研究了一下,有了本文。 ===================================== 一个尝试,如何在内存中申请空间:>>>100000*400000*8/1024/1024/1024298.0232238769531 实际代码:importnumpyas......
  • 一天吃透Redis面试八股文
    内容摘自我的学习网站:topjavaer.cnRedis连环40问,绝对够全!Redis是什么?Redis(RemoteDictionaryServer)是一个使用C语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁......
  • redis自写工具类
    redisDao.javapackagecom.example.demo.dao;/***@Date2023/7/1-9:11*/publicinterfaceredisDao{//存储验证码booleansave(Stringtelephone,Stringcode);//获取验证码StringgetCode(Stringtelephone);//存储token......
  • Redis Desktop Manager(Redis可视化工具)安装及使用教程
    RedisDesktopManager(Redis可视化工具)安装及使用教程2、一、工具/材料官网下载:https://redisdesktop.com/download百度网盘:https://pan.baidu.com/s/15xVRpCT8mkP2uT8PoBHT3g提取码:v727二、方法/步骤1.说明RedisDesktopManager是一款简单快速、跨平台的Redis桌面管理工具,也被......
  • 动态规划之混合三种背包问题
    问题如果将P01、P02、P03混合起来。也就是说,有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。应该怎么求解呢?01背包与完全背包的混合考虑到在P01和P02中给出的伪代码只有一处不同,故如果只有两类物品:一类物品只能取一次,另一类......
  • redis核心
    一、Redis是什么?Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string、list、set、zset(sortedset--有序集合)和hash。二、Redis都有哪些使用场景?Redis是基于内存的nosql数据库,可以通过新建线程的形式进行持久化,不影响Redis单线程的读写操作通过list取最新......