Redis使用watch完成抢购功能(基础版)

本文介绍了如何利用Redis的watch命令实现基础版抢购功能,强调了使用Redis的内存特性及乐观锁的优势,避免了并发问题和资源占用。通过MULTI、EXEC和WATCH等事务命令确保数据一致性,并通过线程池控制并发。提供了代码示例链接。
摘要由CSDN通过智能技术生成

Redis使用watch完成抢购功能(基础版)

Redis使用watch实现抢购功能有如下优点:

1、选用内存数据库Redis来实现抢购,速度极快

 2、使用watch,采用乐观锁,不采用悲观锁,因为等待时间非常长,响应慢,会迅速增加系统资源占用

3、不使用队列,因为并发量会使内存数据库资源瞬间爆炸

开始此功能前,先简单了解几个此功能需要用到的Redis事物命令:

1MULTI 开始一个事务

2EXEC执行所有事物块内的命令

3WATCH 监视一个(或多个) key,如果在事务执行之前这个(或这些) key被其他命令所改动,那么事务将被打断

 

代码使用watchKeys存储抢购商品数量,UUID随机生成模拟客户数据,successSet存储抢购成功的客户信息,failSet存储抢购失败的客户信息。

使用ExecutorService线程池newCachedThreadPool建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

Redis使用watch完成抢购功能(基础版)的代码地址:https://github.com/zhyiC/JetBrains/tree/master/redis




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值