Redis-缓存和数据库一致性问题

三种策略

Cache Aside

只读缓存模式,即读操作命中缓存直接返回,未命中从后端数据库加载到缓存再返回。写操作直接更新数据库,并删除缓存。
👍一切以后端数据库为准,最常用的方式。

Read/Write Through

应用层读写只操作缓存,不关心数据库。操作缓存时,缓存层会自动从数据库加载或写回到数据库。
👍对于应用层比较友好
👎缓存层需要支持和后端数据库的联动

Write Back

写操作,只写缓存。读操作如果缓存命中则直接返回,否则就从数据库加载到缓存,在加载之前如果缓存已满,要把需要被淘汰的缓存数据写回到数据库,在把读的数据加载到缓存。
👍 写操作性能很好
👎 可能导致缓存数据库的不一致

异常处理

操作缓存或者操作数据库时发生异常,如果需要严格保证缓存数据库的一致性,需要使用分布式事务的解决方案,如2PC, 3PC, TCC, 消息队列等。

Original: https://www.cnblogs.com/rachel-aoao/p/redis_cache_db_coherence.html
Author: rachel_aoao
Title: Redis-缓存和数据库一致性问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/601468/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL数据类型和表操作

    MySQL数据类型和表修改 整型的定义 //创建有符号整数表 CREATE TABLE t1 (id TINYINT); //创建无符号整数表 CREATE TABLE t2 (i…

    数据库 2023年6月16日
    099
  • haproxy

    haproxy 一.haproxy简介 二.负载均衡 三.haproxy安装 1.yum安装 2.源码安装 2.1 配置文件解析 2.2时间格式 2.3 全局global 2.4 …

    数据库 2023年6月14日
    074
  • Linux 利用Cgroup 资源控制

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 cgroups 是Linux内核…

    数据库 2023年5月24日
    0120
  • LeetCode 27. 移除元素

    给你一个数组nums和一个值val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用O(1)额外空间并 原地 修改输入数…

    数据库 2023年6月11日
    082
  • 通过.frm和.idb文件恢复mysql数据库

    本文对该文章进行参考,地址https://baijiahao.baidu.com/s?id=1675966756498698574&wfr=spider&for=p…

    数据库 2023年5月24日
    0101
  • 获取不到数据库连接问题

    org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; …

    数据库 2023年6月11日
    083
  • Pisanix v0.2.0 发布|新增动态读写分离支持

    1.动态读写分离介绍 1.1 介绍 读写分离是业界使用 MySQL 高可用最常用的方案之一,在实际场景中可以提高查询性能,降低服务器负载。本次版本在 v0.1.0 静态规则基础上增…

    数据库 2023年6月16日
    0102
  • CentOS7安装配置Tomcat

    1.安装jdk jdk 安装有两种方式,本文只介绍rpm格式的安装包 安装jdk:在安装包所在的目录下执行如下语句 安装完成后,默认安装在/usr/java下。 配置环境变量,执行…

    数据库 2023年6月11日
    074
  • 2022 老生常谈 深入理解用好MySQL索引

    Original: https://www.cnblogs.com/lihanlin/p/16202723.htmlAuthor: 李翰林Title: 2022 老生常谈 深入理解…

    数据库 2023年5月24日
    086
  • 电脑必须打开的设置

    电脑性能设置 优化设置一:开启卓越性能 其实,win10系统中有一个卓越性能的隐藏设置,它可以让我们的电脑,在现有配置的情况下,发挥出最优良的性能。 1、 同时按住”w…

    数据库 2023年6月14日
    0110
  • Linux下搭建git分布式管理

    VMware 虚拟机中搭建步骤 一、 1.查一下ip 2.和Xshell连接起来 3.看是否连接上 4.这就ok了 5.输入 yum install git yum install…

    数据库 2023年6月6日
    095
  • MySQL5 单点安装

    Original: https://www.cnblogs.com/cheng9999/p/16501129.htmlAuthor: cheng_blogTitle: MySQL5…

    数据库 2023年6月16日
    084
  • 二叉树遍历的常用方法

    概述 二叉树的遍历可以说是解决二叉树问题的基础。我们常用的遍历方式无外乎就四种 前序遍历、 …

    数据库 2023年6月11日
    085
  • go test 的内联问题

    写单测的时候遇到一个问题,在使用 gomonkey 进行打桩时,使用 gland 的 debug 运行测试时,测试程序正常跑通,而使用 run 或者命令行运行 go test -v…

    数据库 2023年6月9日
    0126
  • Word转换HTML(Java实用版)

    前言: 在业务中,如果需要在浏览器中预览Word文档,或者需要将Word文档转成HTML文件保存,那么本章内容,可以帮助到你。 实现这一功能,有多种实现方式,如:docx4j、po…

    数据库 2023年6月16日
    0183
  • jupyter使用虚拟环境

    为了在jupyter中使用pyTorch的虚拟环境,来记录一下怎么操作一、conda命令的使用因为使用的是jupyter,所有就使用Anaconda Prompt来创建虚拟环境(也…

    数据库 2023年6月14日
    084
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球