zoukankan      html  css  js  c++  java
  • Redis 相关

    高并发
    多机的时候,虽然有失效时间,但还是会有短时间内缓存和数据库数据不一致(读操作不需要特殊操作),
    更新操作的时候
    先删除缓存,再更新数据库
    先更新数据库,再删除缓存
    原子性破坏,增加队列重试

    先删除缓存,再更新数据库
    在高并发下表现不如意,在原子性被破坏时表现优异
    先更新数据库,再删除缓存(Cache Aside Pattern设计模式)
    在高并发下表现优异,在原子性被破坏时表现不如意


    雪崩
    大量key同时失效,或者缓存层崩了
    1.多机负载,哨兵监控,限流降级,同一个线程对同一个key
    2. 给每个key的过期时间加随机数,尽量设置把过期时间设置的均匀一些
    3.缓存持久化,宕机之后重启并快速从磁盘恢复

    穿透
    不断地访问数据库不存在的值,空值因为不存缓存,就会一直访问数据库。
    1.数据库返回为空,也放入缓存,并设置短过期时间,下次再访问就返回空。
    2.布隆过滤器,不合法的提前拦截

    持久化
    RDB和AOF的优缺点

    RDB优点:全量数据快照,文件小,恢复快

    RDB缺点:无法保存最近一次快照之后的数据,数据量大会由于I/O严重影响性能

    AOF优点:可读性搞,适合保存增量数据,数据不一丢失

    AOF缺点:文件体积大,恢复时间长

  • 相关阅读:
    SourceInsight宏插件3(非常好用,强力推荐)
    SourceInsight宏插件2(非常好用,强力推荐)
    Beyond Compare 3添加右键菜单
    OpenCV图像读取和写入
    TY科技的工程配置(VS2017 & Opencv4.0.0)
    Visual Studio2017 & pcl1.8.1 库的配置
    LeetCode No.198
    LeetCode No.191
    LeetCode No.190
    LeetCode No.179**
  • 原文地址:https://www.cnblogs.com/jayblog/p/13219710.html
Copyright © 2011-2022 走看看