• Redis3 缓存更新策略,缓存粒度控制,缓存穿透,缓存击穿,缓存雪崩


    缓存更新策略

    # 有LRU/LFU/FIFO三种算法
    #
    LRU:Least Recently Used,没有被使用时间最长的 # LRU配置 maxmemory-policy:volatile-lru (1)noeviction: 如果内存使用达到了maxmemory,client还要继续写入数据,那么就直接报错给客户端 (2)allkeys-lru: 就是我们常说的LRU算法,移除掉最近最少使用的那些keys对应的数据,ps最长用的策略 (3)volatile-lru: 也是采取LRU算法,但是仅仅针对那些设置了指定存活时间(TTL)的key才会清理掉 (4)allkeys-random: 随机选择一些key来删除掉 (5)volatile-random: 随机选择一些设置了TTL的key来删除掉 (6)volatile-ttl: 移除掉部分keys,选择那些TTL时间比较短的keys # LFU:Least Frequenty User,一定时间段内使用次数最少的 # LFU配置 Redis4.0之后为maxmemory_policy淘汰策略添加了两个LFU模式: volatile-lfu:对有过期时间的key采用LFU淘汰算法 allkeys-lfu:对全部key采用LFU淘汰算法 # 还有2个配置可以调整LFU算法: lfu-log-factor 10 lfu-decay-time 1 # lfu-log-factor可以调整计数器counter的增长速度,lfu-log-factor越大,counter增长的越慢。 # lfu-decay-time是一个以分钟为单位的数值,可以调整counter的减少速度 # FIFO:First In First Out

    缓存粒度控制(了解)

     

    上图中,使用Redis来做缓存,底层使用MySQL来做数据存储源,这种架构下大部分请求由Redis处理,少部分请求到达MySQL。从MySQL中获取一个用户的所有信息,然后缓存到Redis的数据结构中。

    此时需要面对一个问题:缓存这个用户的所有数据信息,还是缓存用户需要的用户信息字段。

    缓存粒度:
    ​    缓存全部属性
        缓存部分重要属性
    
    1 通用性:全量属性更好
    2 占用空间:部分属性更好
    3 代码维护:表面上全量属性更好

    缓存穿透,缓存击穿,缓存雪崩

    # 缓存穿透:
        -缓存和数据库都没有数据,爬虫,恶意攻击
      -解决:
        -1 接口层增加校验,id小于0的直接处理掉
        -2 对应数据库中也不存在的,也在缓存中放一份,只不过value值是空
        -3 通过布隆过滤器实现,把所有用户id都放到布隆过滤器中,来了一个请求,拿着id
            去布隆过滤器看,没有表示是恶意请求,直接返回
    # 缓存击穿
        -缓存没有,数据库有,缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力
      -解决:
          -设置热点数据永远不过期。
    # 缓存雪崩
        -缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机     
        和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。
    -解决方案: 1 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。 2 如果缓存数据库是分布式部署,将热点数据均匀分布在不同搞得缓存数据库中。 3 设置热点数据永远不过期。
  • 相关阅读:
    【nginx正向代理配置】
    vue中自定义指令directive的详细指南
    两分钟搞定module.exports与exports区别
    Vue 常见面试题汇总(这些技巧你真的都掌握了吗?呕心沥血2w字整理
    Vue 插槽(slot)详细介绍(对比版本变化,避免踩坑)
    阿里云上使用Linux
    promise升级版async,await来袭,搭配try+catch更香哦
    什么是地狱回调?解决回调地狱的两种方法
    XShell免费版的安装配置教程以及使用教程(超级详细、保姆级)
    常用的前端JavaScript方法封装
  • 原文地址:https://www.cnblogs.com/ludingchao/p/14075231.html
Copyright © 2020-2023  润新知