文章目录

  • Redis持久化与过期机制
    • 1. 持久化机制
      • 1.1 RDB(默认)
      • 1.2 AOF
    • 2. 过期机制
      • 2.1 根据过期策略删除数据
      • 2.2 当内存过大装不下新数据时,将启用淘汰机制
    • 3. 其他
      • 3.1 Redis快的原因
      • 3.2 如何解决缓存穿透、缓存击穿、缓存雪崩?
      • 3.3 应该为什么样的数据提前做缓存?

Redis持久化与过期机制

1. 持久化机制

1.1 RDB(默认)

  • 机制

    • 指定时间内、指定次数写操作 -> 会将内存中的数据写入磁盘(dump.rdb文件)
    • 重启Redis将会加载磁盘中已持久化的数据
  • 优点:恢复速度快,适用于大多数场景
  • 缺点:数据的数据完整性、一致性不高(因为如果内存中的数据写入磁盘之前,程序挂了或者宕机,会导致新的数据没有被持久化)

1.2 AOF

  • 机制

    • 将每个写操作以日志的方式记录并追加到文件中
    • 重启Redis将会读取日志文件进行恢复
  • 优点:数据的完整性、一致性更高
  • 缺点:日志记录较多,恢复速度慢

2. 过期机制

2.1 根据过期策略删除数据

2.2 当内存过大装不下新数据时,将启用淘汰机制

  • 一般为了防止Redis占用内存过大,影响整个服务器,会设置其最大内存值,即maxmemory
  • 当内存超过maxmemory时,将根据maxmemory_policy释放内存
    • noeviction:写入新数据时,直接报错
    • allkeys-lru:写入新数据时,删除所有数据中最近最少使用的key
    • allkeys-lfu:写入新数据时,删除所有数据中使用频次最少的key
    • allkeys-random:写入新数据时,随机删除所有数据中的key
    • volatile-lru:写入新数据时,删除设置了过期时间的数据中最近最少使用的key
    • volatile-lfu:写入新数据时,删除设置了过期时间的数据中使用频次最少的key
    • volatile-random:写入新数据时,随机删除设置了过期时间的数据中的key
    • volatile-ttl:写入新数据时,优先删除过期时间较早的key
  • 补充
    • LRU -> least recently used
    • LFU -> least frequently used

3. 其他

3.1 Redis快的原因

3.2 如何解决缓存穿透、缓存击穿、缓存雪崩?

  • 缓存穿透 ->

    • 布隆过滤器
  • 缓存击穿 ->
    • 去数据库(例如MySQL)取值时,先在Redis中为该key设置一个占位值,这样后续大量针对该key的请求就不会直接传到后面的数据库
    • 二级缓存
    • 分布式锁(Redis、Zookeeper)
  • 缓存雪崩 ->
    • 为Redis生成带过期时间的key时,给一个随机的浮动时间,防止同一时间大量key一起过期
  • 另外,内存足够的话,建议将热门数据设置无过期时间

3.3 应该为什么样的数据提前做缓存?

Redis持久化与过期机制相关推荐

  1. redis 缓存过期默认时间_缓存的必知必会:一文搞懂Redis持久化和过期机制

    本文主要介绍了 Redis 持久化的两种机制:RDB 和 AOF,以及键过期的策略:惰性删除和定期删除,还有 RDB.AOF 和复制功能对过期键的处理. RDB RDB 是 Redis 持久化的第一种 ...

  2. Redis学习总结(17)——Redis 持久化和过期机制复习

    RDB RDB 是 Redis 持久化的第一种方式.有两个 Redis 命令可以用于生成 RDB 文件,一个是 SAVE,另一个是 BGSAVE.SAVE 会阻塞 Redis 服务器进程,执行时 Re ...

  3. Redis中的自动过期机制

    实现需求:处理订单过期自动取消,比如下单30分钟未支付自动更改订单状态 实现方案1: 使用Redis Key自动过期出发事件通知 使用定时任务30分钟后检查 按照每分钟轮训检查 使用Redis Key ...

  4. Redis自动过期机制之key的过期监听(7)

    Redis中的自动过期机制 前言 1.使用Redis Key自动过期机制 2.Springboot整合key过期监听 2.1. 创建表 order_number 2.2核心代码 2.2.1 核心代码 ...

  5. Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透

    Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透 简单介绍一个redis? redis是内存中的数据结构存储系统,一个key-value类型的非关系型数据库,可持久化的数据库 ...

  6. Redis的过期机制

    本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存sessi ...

  7. Redis的内存回收机制和数据过期淘汰策略

    本文来说下Redis的内存回收机制和数据过期淘汰策略 文章目录 概述 为什么需要内存回收 过期删除策略 定时删除 惰性删除 定期删除 删除策略比对 过期删除策略原理 redisDb结构体定义 expi ...

  8. 高性能分布式缓存redis(持久化原理 安全策略 过期删除内存淘汰策略 性能压测 高可用 Redis Cluster)

    redis redis(持久化原理 安全策略 过期删除&内存淘汰策略 性能压测 高可用 Redis Cluster) 1. 持久化原理 1.1 持久化流程(落盘) 1.2 RDB详解 1.2. ...

  9. Redis系列之Redis持久化机制

    Redis持久化机制 为什么要持久化 如果Redis再次访问时,发现Redis的数据是空的,就会形成缓存穿透.更重要的是,因为Redis的数据是空的,所以客户端想要访问的key都没有,就会造成大量的请 ...

最新文章

  1. 10.07-Idea的使用
  2. vue+vuex+leaflet Jest单测踩坑指南
  3. firefox+android+平板,Firefox模拟手机浏览器(iOS+Android) – UserAgent Switcher使用方法...
  4. [转]ActiveX控件安全初始化之一:实现ISafeObject接口
  5. 【渝粤题库】广东开放大学 社会学基础 形成性考核
  6. 九九乘法表编码以及思路
  7. 搜狗输入法为什么按空格出字 搜狗输入法按空格出字怎么设置
  8. 易华录发布蓝光存储新品
  9. 易懂分布式 | Kademlia算法
  10. mysql服务器版本手册_MySQL中文参考手册——与MySQL服务器连接
  11. android 放大镜功能,简单实现Android放大镜效果
  12. 公众号运营工具推荐大会!这些如果你还没用就out啦!
  13. 怎么把一个表格拆分成两个表格
  14. 爱情就像是免杀,连鞋都没脱,就悄无声息的走进了你的心里
  15. Spring Boot 实现接口幂等性的 4 种方案作者:小小怪下士
  16. oracle通过什么命令释放锁,oracle检测锁,释放锁
  17. 通信原理仿真100例 | 多普勒频移的matlab仿真
  18. 工控机常见问题与解决方法
  19. vue+openlayers图形交互,实现多边形绘制、编辑和保存
  20. C++STL标准库学习笔记(一)sort

热门文章

  1. mysql跳过安全_几年了,作为一个码农终于把MySQL日记看懂了!
  2. Facebook广告账号主页创建时,其实还有这些小知识!
  3. 新手tiktok怎么做?海外tiktok怎么赚钱!
  4. 上海计算机一级flash真题,2011年上海市一级考PS与Flash试卷.docx
  5. Leetcode每日一题:3.无重复字符的最长子串
  6. 聊天机器人最难理解的 10 个词汇
  7. fetch与XHR的区别与优势
  8. Android权限管理
  9. 文本获取和搜索引擎中的反馈模型
  10. configure 查找依赖库_由浅入深:Python 中如何实现自动导入缺失的库?