当前位置: 首页 > news >正文

微网站开发技巧大前端 wordpress

微网站开发技巧,大前端 wordpress,电子商务网站建设参考文献书籍,木木科技 网站艰涩Redis 和 Mysql 数据库数据如何保持一致性 保持Redis和MySQL数据库数据一致性是一个常见且重要的问题#xff0c;特别是在使用Redis作为MySQL数据库的缓存层时。以下是几种常用的保证二者数据一致性的策略和方法#xff1a; 双写一致性#xff08;同步更新#xff09;特别是在使用Redis作为MySQL数据库的缓存层时。以下是几种常用的保证二者数据一致性的策略和方法 双写一致性同步更新 先更新MySQL后更新Redis 在业务代码中首先执行对MySQL的写操作待该操作成功后立即更新Redis中的对应缓存数据。这种方式简单直接但存在短暂窗口期内数据不一致的风险即在MySQL更新后、Redis更新前如果有请求读取缓存可能会获取到旧数据。 先更新Redis后更新MySQL 反之先更新Redis然后更新MySQL。这种方式同样存在类似的风险即在Redis更新后、MySQL更新前如果有请求直接查询数据库如缓存未命中或被主动刷新可能会看到新缓存数据与旧数据库数据之间的不一致。 异步更新 使用消息队列 当MySQL数据更新时将更新事件发送到消息队列如RabbitMQ、Kafka等。消费者服务监听队列接收到消息后异步地更新Redis缓存。这种方法可以缓解同步更新时的性能压力但增加了系统的复杂性并且需要处理消息丢失、重复消费等问题以保证最终一致性。 基于MySQL Binlog的更新 订阅Binlog 利用工具如Canal、Maxwell、Debezium等订阅MySQL的二进制日志Binlog当MySQL数据发生变化时这些工具能够实时捕获并解析Binlog事件然后将更新信息推送到Redis自动更新缓存。这种方法可以近乎实时地保持数据一致性且对业务代码无侵入但需要额外部署和维护Binlog订阅服务。 使用版本号或时间戳 在数据模型中引入版本号或时间戳字段每次更新时同时更新MySQL和Redis中的相应字段。在读取数据时可以通过比较版本号或时间戳来判断缓存是否过期从而决定是否从数据库重新加载数据。这种方法有助于解决缓存与数据库数据版本冲突问题但需要在业务逻辑中处理版本比较逻辑。 Redis事务 Redis本身支持事务MULTI/EXEC命令可以在一个事务中执行一系列操作保证这些操作的原子性。对于涉及MySQL和Redis的更新操作可以尝试将它们封装在Redis事务中执行但需要注意的是这并不能跨越Redis和MySQL两个不同的系统实现真正的分布式事务只能保证Redis内部操作的原子性。 普通双删策略 1、线程A先删除缓存再更新数据库再删除缓存 2、线程B查询缓存没有数据在线程A更新数据库之前查询到旧数据此时系统时间片切换到线程A执行删除缓存之后又轮到线程B放入缓存旧数据 3、线程C针对于线程A查询缓存没有数据查询到旧数据放入缓存旧数据 都不能满足缓存和数据一致性。 延迟双删策略 在更新MySQL后立即删除Redis缓存然后设置一个短时延如几毫秒后再次删除缓存。这样可以尽量减少在第一次删除缓存到MySQL更新生效期间新数据被缓存的可能性。 1、线程A先删除缓存之后更新数据库 2、线程B和线程C发现缓存没数据查询数据库。线程B查询到的是旧数据线程C查询到的是新数据。之后纷纷放入缓存 3、线程A延时3-5秒时间一般要大于SQL执行时间线程切换执行时间100ms足够再将缓存删除。之后其他线程再查询缓存发现没数据再次查询数据库及放入缓存都是新数据 极端情况就是线程D所以延时双删还是不一定能保证缓存及数据一致。 延迟双删策略 1、在发现缓存没有数据后在执行查询数据库前对该Key进行加锁查询数据库并放入缓存后再解锁这样可以避免缓存击穿问题当某个redis数据不存在时大量线程并发查询数据库。 2、在需要执行双删前对该Key进行加锁之后执行删除缓存更新数据库放入新数据到缓存在解锁。保证缓存和数据一致性。 3、加锁的Key都需要设置过期时间避免因为宕机造成死锁。 综合考虑选择哪种方法取决于具体的应用场景、数据一致性要求、系统复杂性接受程度以及运维成本等因素。实践中常采用组合策略如结合使用消息队列与Binlog订阅或者在业务代码中直接同步更新的同时辅以定期的数据校验与修复机制以提高数据一致性的保障程度。
http://www.w-s-a.com/news/597250/

相关文章:

  • 青岛外贸假发网站建设seo优化名词解释
  • 四川建设厅网站施工员证查询网站建设行业政策
  • 网站全站出售dw怎么设计网页
  • 合肥网站建设方案服务网站建设推荐郑国华
  • 襄阳网站建设需要多少钱台州网站设计公司网站
  • 东莞专业拍摄做网站照片如何在百度上发布自己的广告
  • 网站建设费 科目做网站建设最好学什么
  • php商城网站建设多少钱深圳市建设
  • 有什么做糕点的视频网站黄岛做网站
  • 做视频课程网站建设一个普通网站需要多少钱
  • 专做化妆品的网站合肥做网站建设公司
  • 唐山企业网站网站建设费计入那个科目
  • 企业网站制作运营彩虹云主机官网
  • 如何建设废品网站如何在阿里云云服务器上搭建网站
  • 如何建立网站后台程序wordpress 后台管理
  • 山东外贸网站建设怎么样wordpress首页左图右文
  • 志丹网站建设wordpress 形式修改
  • 南通seo网站推广费用网站建设就业前景
  • 自适应网站做mip改造浏览器广告投放
  • 网站meta网页描述网站的推广费用
  • 偃师市住房和城乡建设局网站网站个人主页怎么做
  • 做网站要实名认证吗wordpress去掉仪表盘
  • 在哪做网站好Python建网站的步骤
  • 卢松松的网站办公室设计布局
  • 住房城乡建设干部学院网站织梦网站0day漏洞
  • 企业网站seo优帮云手机桌面布局设计软件
  • 无证做音频网站违法吗智能建站加盟电话
  • 鹿泉专业网站建设做网站为什么要建站点
  • 加强网站建设和维护工作新闻大全
  • 红鱼洞水库建设管理局网站左右左布局网站建设