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

外卖Day7

缓存菜品ok

springcacheok

自己加了redission---分布式锁

  • 对于菜品和套餐的缓存,在管理端新增,删除,改价,停售需要删除缓存,后面用户查询菜品->先查缓存->缓存不存在查询数据库并写入缓存
  • 对于店铺营业状态的同步,用户在查看店铺状态时,需要让数据库与 redis 高度保持一致,因为如果店铺没有营业的话就不能点单了,所以它要求时效性比较高,所以采用的读写锁保证的强一致性。
    我们采用的是 redisson 实现的读写锁(RReadWriteLock),在读的时候添加共享锁,可以保证读读不互斥,读写互斥。
    当我们更新数据的时候,添加排他锁,它是读写,读读都互斥,这样就能保证在写数据的同时是不会让其他线程读数据的,避免了脏数据。

 步骤:

  1. 创建redission客户端实例
  2. getlock、getReadWriteLock
  3. lock.readLock().lock()
  4. finally unlock()

当然也可以设置锁的有效期:

 

锁的自动续期、公平锁支持

分布式锁中的王者方案-Redisson - 悟空聊架构 - 博客园

概念:

可重入锁:

阻塞其他线程、

redission宕机看门狗死了锁会30s释放

读写锁:

读锁:互斥、排他

写锁:共享

 

http://www.xdnf.cn/news/574903.html

相关文章:

  • Win10更改IP地址在哪里设置?多种方法详解
  • 和风天气 API 获取天气预报 2025/5/21
  • SAP-ABAP:企业级异常处理框架设计与实战 —— 构建高可用、可观测的异常治理体系
  • Frp Dockr Mysql内网映射
  • C#中Task.Run的线程管理最佳实践与并发控制
  • FPGA设计需要学什么?
  • Shell入门篇二
  • Seata1.8.0安装部署流程linux
  • 动态规划2
  • 编程技能:字符串函数09,strncmp
  • 阿里云数据盘级别
  • C++ for QWidget:正则表达式和QRegExp
  • 六:操作系统虚拟内存之页替换算法
  • 101个α因子#12
  • nmtui工具使用教程
  • Halcon数据类型
  • RUP的9个核心工作流在电商平台项目中的拆解
  • 操作系统理解(xv6)
  • java进阶 1.0.2
  • ai建模平台:AnKo革新智能创作体验新纪元!
  • 以加减法计算器为例,了解C++命名作用域与函数调用
  • Vue3使用DataV报错无法使用的解决方案
  • 使用allure生成自动化测试报告
  • 通过TDE透明加密实现SQL Server数据库免改造加密
  • 反弹shell
  • MySQL临时表和内存表
  • C11 日期时间处理案例
  • AtCoder 第406场初级竞赛 A~E题解
  • 学习黑客了解密码学
  • Coze工作流-变量以及变量的类型讲解