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)

相关推荐

  • 源码解析二 模型转换 export.py

    技术源码解析二 模型转换 export.py 源码解析二 模型转换 export.py基于最新yolov5-v6.01.重点2.相关函数1.重点一般使用规则:python export.py --dat

    礼包 2021年12月21日
  • oracle中数据泵dump文件存放nfs报ORA-27054错误怎么办

    技术oracle中数据泵dump文件存放nfs报ORA-27054错误怎么办小编给大家分享一下oracle中数据泵dump文件存放nfs报ORA-27054错误怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参

    攻略 2021年11月20日
  • 香港服务器搭建网站哪家好

    技术香港服务器搭建网站哪家好使用香港服务器搭建网站有很多好处,主要有以下几点高端性能: 香港服务器租用最重要的好处之一是您可以从您的网站获得高端性能。有了这个,您可以获得大带宽和高存储容量的香港服务器租用。使用香港服务器

    礼包 2021年12月21日
  • UML序列图怎么用

    技术UML序列图怎么用小编给大家分享一下UML序列图怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!UML序列图UML序列图显示具体用例(

    攻略 2021年12月4日
  • 张字组词有哪些,第二个字是“张”字的成语有哪些

    技术张字组词有哪些,第二个字是“张”字的成语有哪些大张其词 张字组词有哪些;大张旗鼓 ;大张声势 ;大张挞伐 ;东张西望 ;范张鸡黍 ;急张拘诸 ;铺张浪费 ;铺张扬厉

    生活 2021年10月26日
  • Linux中系统命令有哪些

    技术Linux中系统命令有哪些小编给大家分享一下Linux中系统命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ps查看系统中进程状态

    攻略 2021年11月20日