第八天业务题

8-1 分布式锁有哪些实现方式?redis是如何实现分布式锁的?讲一讲Redisson实现分布式锁的原理?

分布式锁可以通过多种方式实现,其中一些常见的包括基于数据库、基于Redis等。

在Redis中,实现分布式锁通常使用了SETNX(SET if Not exists)命令,即当指定的锁键不存在时,才会进行设置。这个操作是原子性的,可以保证在并发情况下只有一个客户端能够成功地获取到锁。

Redisson是一个基于Redis的Java驻内存数据网格(In-Memory Data Grid)和分布式锁服务。它通过Redis实现了一套分布式锁的机制,其原理包括以下几个步骤:

  1. 使用Redis的SET命令尝试获取锁,设置一个键值对,其中键表示锁的名称,值可以是任意值,通常是一个唯一标识符。
  2. 如果SET命令返回成功,表示获取锁成功,操作可以继续进行;如果返回失败,表示锁已经被其他客户端持有,需要等待或进行重试。
  3. 在获取锁成功后,需要设置一个过期时间,以防止锁无法被释放而导致死锁。
  4. 在释放锁时,使用Redis的DEL命令删除对应的键值对,确保锁被正确释放。

Redisson在这个基础上进行了封装和优化,提供了更加便捷和安全的分布式锁使用方式,同时还支持可重入锁、公平锁、红锁等多种分布式锁的实现。

8-2 补充:介绍一下你们项目中的优惠券功能

首先,根据订单查询可用优惠方案,主要判断订单是否符合优惠的条件,例如满减门槛或者是否适用优惠卷的分类。

其次,根据订单和优惠方案查询优惠明细。

然后,核销优惠券。在我的项目中,只能使用一张优惠卷。

最后,退还优惠券。当订单取消或超时后,优惠卷需要退回。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值