redis和mysql数据不一致_高并发redis和数据库不一致问题?解决方案 这里有招

redis高并发开发,时不时的会发现数据不一致问题,不知道你有没有更好的方法,这里简单的方案 提供给您,不知道对您有没有帮助。

缓存就是数据交换的缓冲区,当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

解决方案:

canal的原理是模拟Slave向Master发送请求,canal解析binlog,但不将解析结果持久化,而是保存在内存中,每次有客户端读取一次消息,就删除该消息。

技术实现要素:

针对现有技术存在的不足,本发明的目的在于提供一种基于Redis的实时缓存更新方法。

为实现上述目的,本发明提供了如下技术方案:

一种基于Redis的实时缓存更新方法,包括以下步骤,

S1、实时获取用户对数据库中的数据的修改信息;

S2、基于修改信息修改数据库中的数据并对应数据库数据的修改生成binlog信息;

S3、接收数据库推送的binlog信息,将binlog信息解析;

S4、获取并将解析后的binlog信息转化为与缓存数据库中数据对应的更新信息;

S5、基于更新信息修改缓存数据库中的数据。

64c8bdaab79475e7bafb82dcd2c5f595.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值