优惠券领取--Java电商
来源:互联网 发布:郑州淘宝网店加盟被抓 编辑:程序博客网 时间:2024/05/16 01:09
归纳一下修改后的逻辑:
1.查询缓存,如果缓存存在,返回结果
2.缓存不存在,查询数据库
3.争夺分布式锁
4.成功获得锁,再次判断缓存的存在
5.如果缓存仍旧不存在,把查询数据库的结果循环放入缓存
6.释放分布式锁
这种二次判断存在性的机制有一个专门的名字,叫做双重检测。该方法在线程安全的单例模式中也常常被用到。
几点补充:
1.文中所使用的分布式锁,其实并不是“正宗”的分布式锁,当线程争夺锁失败的时候,会直接返回查询DB的结果,而不会依靠自旋机制来等锁。
2.为什么优惠券列表的信息要使用List类型来存入缓存,而不是把整个列表存为一个很长的Json字符串?这是由于业务需要,使用List在某些情况下更方便对单个优惠券信息进行修改(LSET指令)。
3.为什么优惠券列表的信息不使用Redis的Set或者Hash数据类型来存储,实现自动去重呢?对于Set类型,去重前需要对比整个字符串是否完全相同,而每一张优惠券是一个较长的Json字符串,对比的效率会比较低。使用Hash倒是可以实现高效的去重,但并未在根本上解决重复更新的问题。
阅读全文
1 0
- 优惠券领取--Java电商
- 电商优惠券,优惠码的生成
- 阿里云服务器(ECS)优惠券领取
- 阿里云ECS服务器优惠券领取开通
- 天猫双十一自动领取优惠券代码
- 备战双11--批量领取优惠券
- 全自动领取天猫双11优惠券教程!
- 阿里云服务优惠券免费领取
- 微信小程序电子优惠券领取,淘宝客
- 免费领取阿里云的优惠券
- 阿里云优惠券幸运券领取
- 2018最新阿里云优惠券免费领取!
- 淘宝天猫内部优惠券领取
- 电商解密之优惠券:B2C平台优惠券该如何设计?
- 淘宝优惠券、红包、代金券免费领取,淘宝购物券
- 淘宝优惠券免费领取,淘宝购物券怎么用
- 腾讯云学生机注册和优惠券领取地址
- 阿里云幸运券优惠券领取和使用规则
- MyBatis框架学习(2)----MyBatis接口式编程
- JS实现两个datagrid的数据移动
- 捉迷藏
- Java跨平台
- 高性能网络编程(一)----accept建立连接
- 优惠券领取--Java电商
- 数据结构之栈的初始化、创建、入栈、出栈、销毁-c++代码实现
- maven + mybatis Invalid bound statement (not found) 错误解决
- 关于短信60秒防止刷新问题 纯思路
- loj6223「网络流 24 题」汽车加油行驶问题(分层图spfa)
- JQuery 属性选择器 [id^=btn]
- 思维决定人生
- java面向对象9经典程序
- 色彩表示与编码