zoukankan      html  css  js  c++  java
  • 缓存的读写模式

    缓存有三种读写模式

    Cache Aside Pattern(旁路缓存),

    是最经典的缓存+数据库读写模式。 读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。

    更新的时候,先更新数据库,然后再删除缓存。 

    高并发脏读的三种情况 

    1、先更新数据库,再更新缓存

    更新缓存比较不好,缓存的值是一个结构如hash、list的时候,更新数据需要遍历。还会出现,缓存更新成功,数据库commit失败,数据不一致。

    2、先删除缓存,再更新数据库

    3、先更新数据库,再删除缓存(推荐)

    2,3 都会出现缓存为空,数据库commit还未完成,其他线程进来读取旧数据放到缓存中,数据不一致。但是第三种可以用延时双删解决。

  • 相关阅读:
    SQL server 数据库基础语句
    数据库学习的第一天
    C# 函数
    C# for循环的嵌套 作用域
    C# for循环语句
    Docker的基本使用
    django连接postgresql
    docker的安装
    Postgresql的使用
    Celery的介绍
  • 原文地址:https://www.cnblogs.com/buxiu/p/14221230.html
Copyright © 2011-2022 走看看