DB与缓存一致性

2023-10-30

一般方案中的设计均有其缺陷:要么会产生脏数据,要么会产生不一致,不同的是代价和概率;

更新数据时,是先删除缓存再更新DB,还是先更新DB再删除缓存?:https://blog.csdn.net/qq_33999844/article/details/81531461

 

试想:能不能将读取的请求进行区分;

要求强一致性的读取请求,直接从数据库中读取数据,不经过缓存;

不要求强一致性的读取请求,从redis中读取数据,使用更新策略;

 

缓存更新策略可用现在使用场景最多的:

1.先更新数据库数据

2.再删除redis中数据

3.等查询请求来的时候,未击中缓存,查询数据库,再将数据设置到缓存

4.redis要使用过期策略

 

当然缓存也可以使用springboot自带的内存缓存:@cacheable 注解

springboot自带缓存介绍:https://blog.csdn.net/qq_33999844/article/details/86312014

@cacheable注意事项:https://blog.csdn.net/qq_33999844/article/details/85601310

在某些场景中会不生效;

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DB与缓存一致性 的相关文章

随机推荐

  • 【tvm官网教程】张量表达与调度

    tvm官网教程 张量表达与调度 目的 1 调度原语 1 1 te常用接口 1 2 tvm常用接口 1 3 stage常用成员函数 2 内置函数与数学函数 2 1 直接声明外部数学调用 2 2 统一内置函数调用 2 3 内置函数下降规则 3
  • docker宿主机访问容器_干货来啦!带你初探Docker逃逸

    Docker是当今使用范围最广的开源容器技术之一 具有高效易用的优点 然而如果使用Docker时采取不当安全策略 则可能导致系统面临安全威胁 本期安仔课堂 ISEC实验室的张老师将为大家介绍不同环境下 Docker逃逸至外部宿主机的情况 一
  • 人工智能算法总结

    一 按照模型训练方式不同分类 可以分为监督学习 Supervised Learning 无监督学习 Unsupervised Learning 半监督学习 Semi supervised Learning 和强化学习 Reinforceme
  • case class

    case class scala里的case class和普通class有几点不同 1 初始化的时候可以不用new 当然你也可以加上 普通类一定需要加new 2 toString的实现更漂亮 3 默认实现了equals 和hashCode
  • BUUCTF-Crypto--一眼就解密 writeup分享

    题目描述 给定密文 ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30 通过解密得出明文 并将结果包上flag 提交 题目求解 我们首先观察密文 类似于章节中的一道题 上面的都是小写的 我们用的是MD5的方法求解
  • 如何使用Eclipse

    1 安装好Eclipse双击进去使用 会先跳出来一个Workspace的工作环境路径选择 自己选好要保存的路径即可保存 如果不小心勾了下面的 设置为默认并不在询问 的窗口 进入Eclipse之后 点击最上方菜单栏 Window Prefer
  • Hyperledger Fabric 入门笔记(五)项目fabric-samples简介

    文章目录 前言 一 特定场景的链码 应用示例 1 1 资产转移asset transfer系列 1 2 拍卖auction系列 1 3 代币token系列 1 4 其它 二 测试网络 三 其它用途 四 过时的内容 五 未知用途 前言 本文对
  • wsl访问Win10中MySQL_在 Windows 10 上安装适用于 Linux 的 Windows 子系统 (WSL)

    适用于 Linux 的 Windows 子系统安装指南 Windows 10 Windows Subsystem for Linux Installation Guide for Windows 10 09 15 2020 本文内容 安装适
  • 腾讯云轻量应用服务器性能测评(全网超详细)

    腾讯云轻量应用服务器性能如何 CPU型号主频 内存 公网带宽和系统盘存储多维对比 轻量应用服务器会不会比云服务器CVM性能差 相对于CVM云服务器轻量服务器更适合轻量级的应用 轻量服务适合中小企或个人开发者用于搭建We网站b应用 小程序 A
  • Base64FileUtils工具类

    package com ruoyi common utils import org apache commons codec binary Base64 import java io public class Base64FileUtils
  • 报错注入的原理分析

    SQL报错注入就是利用数据库的某些机制 人为地制造错误条件 使得查询结果能够出现在错误信息中 这种手段在联合查询受限且能返回错误信息的情况下比较好用 01使用报错注入的前提 页面上没有显示位但是有sql语句执行错误信息输出位 使用mysql
  • android 标题栏,状态栏和导航栏的区别

    http blog csdn net baidu 26352053 article details 53025912 标题栏是手机左上最顶上 显示中国移动 安全卫士 或者当前运行软件的地方 手机的顶部 右边显示信号 电量 网速等等是状态栏
  • linux docker常用命令

    docker ps 显示当前正在运行的容器 docker ps a 显示所有状态的容器 docker images 列出本地镜像 docker port 容器Id 查看容器端口 lsof i 容器端口 检查容器端口是否可用 docker s
  • Prometheus 安装部署监控JMX

    系统环境 系统版本 centos7 Prometheus版本 2 20 1 服务器ip 192 168 0 226 客户端ip 192 168 10 62 一 服务器端系统安装 192 168 0 226 1 将下载好的包文件上传到服务器并
  • 前端学习之原生JS实现attr方法的封装

    HTML代码 img src images 1 jpg alt JS代码 功能 1 参数为2个 设置 2 参数为1个 设置批量属性 获取属性 function attr property value console log property
  • ubuntu18.04配置Swin Transformer环境

    1 安装pytorch pip install torch 1 8 1 i https pypi douban com simple pip install torchvision 0 9 1 i https pypi douban com
  • 电脑打开计算机显示远程过程调用失败,win7系统电脑弹出提示“远程过程调用失败且未执行”的解决方法...

    win7系统使用久了 好多网友反馈说win7系统电脑弹出提示 远程过程调用失败且未执行 的问题 非常不方便 有什么办法可以永久解决win7系统电脑弹出提示 远程过程调用失败且未执行 的问题 面对win7系统电脑弹出提示 远程过程调用失败且未
  • java 原始套接字编程_套接字编程原理

    6 多路复用 select 功能 用来检测一个或多个套接字状态 格式 int PASCAL FAR select int nfds fd set FAR readfds fd set FAR writefds fd set FAR exce
  • android里面layer-list中的inset和clip到底有什么作用

    Inset Drawable 用于通过指定的间距把图片插入到XML中 它在View需要比自身小的背景时常用 有些像padding的作用 例子 第一步 drawable文件中建立inset drawable xml
  • DB与缓存一致性

    一般方案中的设计均有其缺陷 要么会产生脏数据 要么会产生不一致 不同的是代价和概率 更新数据时 是先删除缓存再更新DB 还是先更新DB再删除缓存 https blog csdn net qq 33999844 article details