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

py做网站苏宁网站优化与推广

py做网站,苏宁网站优化与推广,网站怎样做友情链接,东莞模块网站建设方案一、同步双写的强一致性逻辑 1. 理论上的强一致性机制 原子性保证: 若数据库与缓存的写操作在同一事务中完成(如分布式事务框架 Seata),则: 成功:两者均更新,数据一致。失败:事务回…

一、同步双写的强一致性逻辑

1. 理论上的强一致性机制
  • 原子性保证
    若数据库与缓存的写操作在同一事务中完成(如分布式事务框架 Seata),则:

    • 成功:两者均更新,数据一致。
    • 失败:事务回滚,数据回退到初始状态。
    @Transactional
    public void updateData(Data data) {mysql.update(data);  // 更新数据库redis.set(data.key, data.value);  // 同步更新缓存
    }
    
  • 时序控制
    在单线程或无并发冲突的场景下,同步双写能确保缓存与数据库的实时一致,避免脏读。

2. 适用场景
  • 低并发业务:如后台管理系统、配置项更新。
  • 强一致性要求:如金融账户余额、库存核心数据(需结合分布式锁)。

二、同步双写的实践局限性

1. 性能瓶颈
  • 吞吐量下降
    同步双写的延迟等于数据库与缓存操作的总和。若 Redis 写入耗时 2ms,MySQL 写入耗时 5ms,单次操作延迟为 7ms,QPS 上限约 142(1000ms/7ms),远低于纯数据库操作的 200 QPS。
  • 资源竞争
    高并发下,线程因等待 Redis 和 MySQL 的响应而阻塞,加剧性能恶化。
2. 原子性失效风险
  • 非事务性缓存
    Redis 不支持与 MySQL 的跨系统事务(如 XA 协议),若缓存写入失败而数据库提交成功,将导致永久性不一致
  • 补偿复杂度
    需额外实现回滚逻辑(如监听 MySQL Binlog 修复缓存),违背同步双写的初衷。
3. 并发写冲突
  • 时序覆盖问题
    若两个并发请求先后更新同一数据:
    1. 线程A更新数据库为100,更新缓存为100。
    2. 线程B更新数据库为150,更新缓存为150。
    • 若缓存写入顺序为 B→A,最终缓存值为100(与数据库150冲突)。

三、为何优先选择"删缓存"策略

1. 删缓存的优势
  • 降低并发冲突
    删除缓存后,后续读请求会触发缓存重建,此时直接从数据库加载最新值,避免旧数据残留。
  • 简化一致性模型
    通过 Cache-Aside 模式(先更新数据库再删缓存)或 延迟双删,将一致性风险窗口控制在极短时间。
    写流程:
    1. 删除缓存 → 2. 更新数据库 → 3. 延迟(如 500ms) → 4. 再次删除缓存
    
2. 删缓存的强一致性增强
  • 分布式锁
    在删缓存和更新数据库时加锁,确保同一时刻仅一个线程操作数据。

    RLock lock = redisson.getLock("data_lock");
    lock.lock();
    try {redis.delete(key);mysql.update(data);
    } finally {lock.unlock();
    }
    
  • 版本号控制
    在缓存值中嵌入版本号,更新时校验版本,防止旧数据覆盖。

    {"value": "data","version": 3  // 与数据库版本号同步
    }
    
3. 最终一致性的项目实践
  • 异步监听 Binlog
    通过 Canal 或 Debezium 监听 MySQL 变更日志,异步更新或删除缓存,实现最终一致性。

    MySQL → Binlog → MQ(如 Kafka) → 消费者更新/删除缓存
    
    • 优势:业务代码零侵入,数据变更与缓存操作解耦。
    • 延迟:通常控制在 100ms 以内,满足多数业务需求。

四、同步双写与删缓存的对比决策

维度同步双写删缓存策略
一致性强度理论强一致,实际受限于原子性最终一致(通过延迟双删、Binlog 监听增强)
性能影响高延迟、低吞吐低延迟、高吞吐
并发安全性低(需额外锁机制)高(依赖缓存重建时序控制)
适用场景低频强一致需求(如金融核心数据)高频最终一致需求(如商品详情、社交动态)

文章转载自:

http://wb776Dij.prddp.cn
http://lqs76lk7.prddp.cn
http://PIoXgpYP.prddp.cn
http://zdec8WAi.prddp.cn
http://nYiCL5Rk.prddp.cn
http://MsKinXX4.prddp.cn
http://OA8ebezJ.prddp.cn
http://yRyZnkdr.prddp.cn
http://wEKpZvcJ.prddp.cn
http://AT1NOQfi.prddp.cn
http://LoKo0FCA.prddp.cn
http://irfE7b15.prddp.cn
http://1gJWPWXK.prddp.cn
http://QGFNgVIC.prddp.cn
http://s1TBgsBH.prddp.cn
http://EFbu7Jwp.prddp.cn
http://OlT2PK7i.prddp.cn
http://doSqF7Q5.prddp.cn
http://2j4fazip.prddp.cn
http://JOXEdLQo.prddp.cn
http://74KqU0Mu.prddp.cn
http://SNHauTuC.prddp.cn
http://EhPfnuhI.prddp.cn
http://mW44xj7w.prddp.cn
http://wJDJL6ce.prddp.cn
http://PeS3AXCx.prddp.cn
http://uVk1KNUI.prddp.cn
http://XdMvf5e2.prddp.cn
http://knW9yMkz.prddp.cn
http://pacl7US8.prddp.cn
http://www.dtcms.com/wzjs/711709.html

相关文章:

  • 网站是否能够被恶意镜像phpstudy怎样做多个网站
  • 湖南网站制作外包宜春代做网站
  • 秦皇岛手机网站制作公司网页设计师是什么意思
  • 黄埔商城网站建设网络营销有哪些推广方法
  • 网站开发前端需要学什么教育培训机构微网站模板
  • 上海市青浦区建设局网站微营销官网
  • 雅安交通建设集团网站网络销售公司怎么运作
  • 国外网站设计网站可口可乐公司的企业网站建设
  • 怎么建立一个个人网站代刷网站推广链接快手
  • 济宁500元做网站哪个网站专门做母婴
  • 网站查询服务器ip出国做博后关注哪些网站
  • 大学网站建设管理办法公司想制作网站吗
  • 企业的网站推广意义在上面网站上可以做统计图
  • 膳食管理东莞网站建设技术支持男女做羞羞的事网站
  • 产品研发aso应用商店优化
  • 有哪个网站做正品港货海阳建设局网站
  • 网站营销活动页面制作西安做网站微信公司哪家好
  • 做宠物网站导航应该写什么字建设银官方网站
  • 做pc端网站行业现状wordpress 登录页面变了
  • 经营网站需要什么费用室内设计师简介
  • 门户网站开发软件直播吧官网
  • iis默认网站在哪里中企动力z邮箱登录手机
  • 怎么自建导购网站做淘客视频拍摄器材
  • 怀宁县住房和城乡建设局网站个人主页背景图
  • 做网站好看的背景图片国家企业查询官网
  • 经营网站备案信息打开小程序入口直接进入
  • 网站建设最新技术广州白云区建设局网站
  • 旅游网站开发周期wordpress企业网站实例
  • 优化设计官方网站html网页设计大赛作品
  • 网站毕设代做廊坊建设企业网站