当前位置: 首页 > article >正文

redis过期淘汰策略、数据过期策略与持久化方式

redis的过期淘汰策略

redis过期淘汰策略有很多,默认是no-eviction 不删除任何数据,内存不足存入会直接报错,可以在redis配置文件中进行设置,其中有两个非常重要的概念,LRU与LFU

LRU表示最近最少使用,LFU为最少频率使用

又按照volatile已设置过期时间的数据集和allkeys所有数据集,官方提供的淘汰策略有八种

no-eviction禁止驱逐数据、vilatile-lru已设置过期时间数据集选择最近最少使用数据淘汰、volatile-ttl已设置过期时间数据集选择将要过期数据淘汰、volatile-random已设置过期时间数据集中任意选择数据淘汰、volatile-lfu已设置过期时间数据集选择最不经常使用数据淘汰、allkeys-lru所有数据集最近最少使用数据淘汰、allkeys-random所有数据集任意数据淘汰、allkeys-lfu所有数据集中最不经常使用数据淘汰

redis数据过期策略

redis提供两种数据过期删除策略,惰性删除与定期删除

惰性删除:设置key过期时间后,不去管他,需要数据键值对的时候对key进行过期检查,如果过期,删除数据,反之返回该key

定期删除:每隔一段时间,对key进行检查,删除过期的key

定期删除有两种模式:

slow模式是定时任务,执行频率默认10hz,每次不超过25ms,可通过修改配置文件redis.conf的hz选项来调整这个数

fast模式执行频率不固定,每次事件循环都会尝试执行,两次间隔不低于2ms,每次耗时不超过1ms

两者相比,定期删除对内存更加友好,惰性删除对cpu更加友好

一般是惰性删除和定期删除两种策略配合使用

redis数据持久化方式

所谓的redis持久化就是将redis内存中的数据备份到磁盘上,官方提供两种持久化方式RDB和AOF

RDB就是将快照二进制文件备份到磁盘上,存储的是数据本身

AOF是追加文件,将redis执行过的所有写指令备份到磁盘上,redis实例宕机回复数据的时候,会从文件中在执行一遍指令来回复数据

RDB存储的是二进制文件,保存时候存储体积较小,回复速度较快,但会丢失数据,可定期进行RDB快照备份,需要的时候进行全量数据回复。AOF相比而言数据文件较大、回复速度较慢,丢失数据风险小。可将AOF的刷盘策略appendfsync参数设置为每秒进行刷盘everysec,保证redis每秒将AOF缓冲区的写惭怍同步到AOF文件中,提高数据持久化能力

一般RDB与AOF是配合使用的,充分发挥两种持久化方式的优势,提高数据可靠性和恢复能力。


http://www.kler.cn/a/234042.html

相关文章:

  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何查看PDS系统的自阻抗操作指导
  • springboot 之 整合springdoc2.6 (swagger 3)
  • C++20 中最优雅的那个小特性 - Ranges
  • Ollama的安装以及大模型下载教程
  • wafw00f源码详细解析
  • LLMs之MindFormers:基于国产硬件华为Atlas针对GLM-4-9B实现模型全参微调(单机8卡)→模型推理(单卡多batch推理)
  • Multisim14.0仿真(五十五)汽车转向灯设计
  • 骨科器械行业分析:市场规模为360亿元
  • 7 scala的类构造器
  • 物联网数据隐私保护技术
  • Java:JDK8新特性(Stream流)、File类、递归 --黑马笔记
  • MySQL数据库应用实验报告——实验1 表结构创建
  • 疑似针对安全研究人员的窃密与勒索
  • Element-ui date-picker组件报错 date.getHours is not a function
  • Lua: 一门轻量级、高效的脚本语言
  • HiveSQL——借助聚合函数与case when行转列
  • 【Java】案例:检测MySQL是否存在某数据库,没有则创建
  • DC-8靶机渗透详细流程
  • 怎么用postman调用webservice(反推SoapUI)
  • Ubuntu上开启SFTP服务教程
  • 软件安全测试报告如何编写?权威的安全测试报告如何获取?
  • Hive-架构与设计
  • CNN应用Keras Tuner寻找最佳Hidden Layers层数和神经元数量
  • vue3跨组件(多组件)通信:事件总线【Event Bus】
  • 修改GI文件的权限
  • 双活工作关于nacos注册中心的数据迁移