Redis与数据库数据一致性的示例分析

技术Redis与数据库数据一致性的示例分析这期内容当中小编将会给大家带来有关Redis与数据库数据一致性的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 可能谈到保持R

本期,边肖将为您带来Redis和数据库数据一致性的示例分析。文章内容丰富,从专业角度进行分析和描述。看完这篇文章,希望你能有所收获。

说到维护RedisMysql双银行的数据一致性,许多人想到的第一个解决方案可能是序列化读请求和写请求,并将它们串入内存队列。

然而,这种方案有一个致命的缺点:读请求和写请求的序列化将大大降低系统的吞吐量,需要比正常情况多几倍的机器来支持在线请求。为什么会出现RedisMysql双数据库数据一致性的问题?实际上,我们可以考虑这样一个业务场景:我们需要更新一些数据。我们首先更新数据库数据,然后清除Redis缓存中的数据。但是数据库更新操作成功,但是在清除Redis,的缓存时出现了异常,导致数据库中的数据已经更新为最新数据,但是Redis的缓存中的数据仍然是旧数据,这样就会出现RedisMysql的双数据库的数据一致性问题。有些喜欢机会主义的朋友会想,难道我不能先清除缓存中的旧数据,然后将新数据写入数据库,最后更新缓存吗?这样,可能会有一个。

问题:我们成功清除了Redis缓存,但在新数据写入数据库之前,会发生读取请求,这将导致数据库中的旧数据再次存储在Redis,然后等待新数据写入数据库。RedisMysql双数据库的数据一致性。

昨天讲到Redis,的分布式环境,其实我说的是在分布式环境下,数据读写操作是并发操作,所以一条数据读写操作的执行顺序不能保证,所以有可能读操作先于写操作执行,然后脏数据会导致数据一致性问题。此时,我们需要考虑我们读取的数据是否强一致。例如,如果账户余额必须是强一致的,我们应该读取数据库。如果我们读取的数据的实时性不是很严格,比如评分表,我们可以直接读取Redis数据。如果机器并发性不高,读取的数据会先从Redis读取,缓存中的数据只有在不存在的情况下才会从数据库中获取,从数据库中获取的数据会写入Redis.相反,在写入数据时,先清除Redis,缓存的数据,再将数据写入数据库。如果是简单的数据,可以实时写入Redis进行读取操作。如果是需要多表查询的数据,可以暂时不写入Redis,有查询操作时再写入Redis

如果是高并发情况呢?在高并发的情况下,读取数据的操作同上,首选从Redis读取。然而,写数据的操作与刚才不同。在高并发的情况下,写入数据首先写入Redis,然后定期从Redis写入Mysql.在高并发的情况下,应该注意的是,每个读取数据的请求都需要在超时期限内返回数据。如果数据更新频繁,可能会导致Redis,出现一系列更新操作,导致大量读取数据请求超时。最后,所有这些读取数据的请求都被压到数据库中,这将导致缓存崩溃的现象,这可能会严重导致数据库宕机。此时,该解决方案通常通过添加机器来增加吞吐量,或者先将旧数据暂时返回给客户端。所以这里我们其实有一个非常明确的计划。常见的方案有两种:Redis做缓存服务器,一般做缓存有两个目的:快速处理请求,降低I/O.的频率降低I/O的频率其实就是在刚才提到的高并发的情况下,将数据实时写入数据库,然后将数据积累到一定程度,定期写入数据库。请求的快速处理意味着在处理读请求时来自Redis的访问受限。Redis支持高并发操作。因此,处理速度非常快。如果Redis,中没有数据,请在数据库中查询它,然后将其写入redis,的缓存中,以便可以直接从缓存中检索数据进行二次读取。事实上,第二种方案是异步缓存。Redis缓存热门数据,所有的增删查操作都在Mysql.只要Mysqlinsert,updatedelete,kafka-related有操作就可以通过rabbitMQbinlog等第三方消息推送工具将消息推送到Redis,分析http://www . Sina.com/http://www . Sina.com/中的数据更新Rediscache中的数据,并在http://8中建立主从备份机制

这是对Redis和上面边肖共享的数据库数据之间的一致性的示例分析。如果你恰好也有类似的疑惑,可以参考上面的分析来理解。想了解更多,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/129605.html

(0)

相关推荐

  • 分析web前端中html元素样式覆盖问题

    技术分析web前端中html元素样式覆盖问题这篇文章主要讲解了“分析web前端中html元素样式覆盖问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析web前端中ht

    攻略 2021年11月5日
  • 广字头的字,广字头的字大多与什么有关

    技术广字头的字,广字头的字大多与什么有关“广”字头的字大多与房屋或者建筑物有关。常见的“广”字头的字有庵广字头的字、府、店、庙、库。一、庵 ān
    释义
    1、小草屋:茅~。
    2、佛寺(多指尼姑住的):~堂。尼姑~。
    3、姓

    生活 2021年10月26日
  • Matplotlib可视化最有价值的图表有哪些

    技术Matplotlib可视化最有价值的图表有哪些这篇文章主要为大家展示了“Matplotlib可视化最有价值的图表有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mat

    攻略 2021年12月8日
  • 如何用python实现简单的文本情感分析

    技术如何用python实现简单的文本情感分析如何用python实现简单的文本情感分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。很久没在公

    攻略 2021年11月15日
  • jmeter使用方法(jmeter基本使用教程)

    技术jmeter基本使用方法是什么这篇文章主要介绍“jmeter基本使用方法是什么”,在日常操作中,相信很多人在jmeter基本使用方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年12月18日
  • WebService Client端

    技术WebService Client端 WebService Client端pomxml version="1.0" encoding="UTF-8"
    project xmlns="http://ma

    礼包 2021年11月20日