Mysql与redis缓存一致性「终于解决」

Mysql与redis缓存一致性「终于解决」问题:线程A在修改mysql的时候,线程B先读取了数据,接着线程A执行完毕,此时redis中没有数据了,接着线程B处理业务然后设置redis缓存,此时redis中的数据还是线程A修改前的数据。

Mysql与redis缓存一致性

在高并发场景下单单使用mysql提供数据服务显然,是无法满足系统的吞吐量,目前的系统架构中我们一般会采用redis做数据缓存,以此避免请求过多的走数据库从而影响系统性能。但是在高并发场景下保持mysql与redis数据的一致性问题不容忽视。

一、缓存的使用

Mysql与redis缓存一致性「终于解决」

 

 二、mysql与redis缓存一致性问题

场景:线程A,修改数据,线程B使用数据。

1、双删策略:线程A写数据时,先删除redis的数据,然后修改mysql,之后再删除redis的数据。

问题:线程A在修改mysql的时候,线程B先读取了数据,接着线程A执行完毕,此时redis中没有数据了,接着线程B处理业务然后设置redis缓存,此时redis中的数据还是线程A修改前的数据。

2、延迟双删策略:线程A写数据时,先删除redis的数据,然后修改mysql,之后再延迟一个业务时间后删除redis的数据。

问题:该策略无法包括这个延迟时间;并且会影响系统的处理能力。

3、读写串行化:只要读和写是并发产生的就必然会存在,数据一致性问题。如果要彻底解决该问题,就要串行。该中方式会影响效率,如果采用可以做好压力测试。

使用分布式锁:影响效率

使用队列:将操作同一资源的请求,打到同一个队列中。

4、cancel:同步mysql的bin_log ,更新redis。该方式也会存在延迟。

5、redis 设置失效时间

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6175.html

(0)
上一篇 2023-04-15
下一篇 2023-04-15

相关推荐

  • 优化字符串拼接的技巧

    优化字符串拼接的技巧在Python编程中,字符串拼接是经常使用的操作。无论是字符串连接、格式化输出、SQL拼接查询语句等,都少不了字符串拼接的操作。但是,在数据量比较大的情况下,传统的字符串拼接方式可能会出现效率低下的问题。本文将从多个方面介绍优化字符串拼接的技巧。

    2023-12-25
    110
  • 腾讯金融云产品_简述金融大数据的关键技术

    腾讯金融云产品_简述金融大数据的关键技术近期,由中科软科技股份有限公司主办,以“数字保险 科技引擎”为主题的“中国财险科技应用高峰论坛”在北京古北水镇成功举办。论坛聚集400多位来自国内财险公司、国内外保险科技公司的技术专家,腾讯云数据库总

    2023-06-03
    153
  • Mysql 的join on上的过滤和在where上过滤的区别

    Mysql 的join on上的过滤和在where上过滤的区别测试如下: (1)创建两张表,并插入数据,sql语句如下: a表: CREATE TABLE `a` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` v…

    2023-03-05
    144
  • 用Python来创建交互式画布

    用Python来创建交互式画布Python是一种简单易学的编程语言,拥有丰富的绘图和可视化库,可以帮助开发者生成高质量的可视化图表。交互式可视化是数据分析和数据科学的重要组成部分。在这篇文章中,我们将介绍Python如何使用交互式图形库来创建交互式画布。通过本文的学习,你将会了解到Python中的交互式绘图,可以将其用于数据分析和领域特定的可视化应用中。

    2023-12-25
    112
  • 在Mac上安装Python教程

    在Mac上安装Python教程如果你还没有在Mac上安装Python,那么你可以按照以下步骤来进行安装。

    2024-07-25
    30
  • mysql 全局读锁_数据库行锁和表锁

    mysql 全局读锁_数据库行锁和表锁

    2023-04-22
    157
  • mysql事务隔离级别_datatable详解

    mysql事务隔离级别_datatable详解事务处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么全部执行,要么全部不执行。在使用事务和事务处理时,有几个关键词会反复出现 事务:指一组SQL语句 回滚:指撤销指定SQL语句的过程 …

    2023-01-28
    137
  • SQL语句初始[通俗易懂]

    SQL语句初始[通俗易懂] SQL概述 asad …

    2023-03-21
    146

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注