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

来源:互联网 发布:学法语的软件 编辑:程序博客网 时间:2024/05/16 07:45

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




1 0
原创粉丝点击