Redis瞬间实现商品秒杀(使用redis做商品秒杀)
Redis作为一款典型的Key-Value模式的内存数据库,由于其读写速度快,支持对键的按位操作,哈希操作,集合操作等功能,因此它在大型网站架构上运用很广泛。比如,在商城网站上,可以用它实现瞬间商品秒杀效果,如何实现呢?
在redis中创建一个”goods”的hash来存储物品信息。
例子:
hset goods sku_123456 "iphone x"
hset goods sku_1234567 "xiaomi mi9"....
假如还要实现商品的时间VR秒杀,还需要一个集合来存储时间VR秒杀商品SKU列表:
sadd secKill_timeVR sku_123456 sku_1234567 ...
当用户点击参加秒杀的按钮时,判断用户是否已经参加过此次秒杀活动,如果没有,则先把用户加入到该秒杀活动里面,防止用户重复参加。
sadd secKill_Users uid_xxxxx
...
当用户加入秒杀活动后,查询出当前时间秒杀活动参与的SKU列表中是否有商品:
smembers secKill_timeVR
如果存在,则只有当前的用户可以继续下单,否则抢购失败。
如果用户抢购成功,则必须将该商品从Redis库中删除:
srem secKill_timeVR sku_xxxx
到此,以上的操作就完成了Redis实现瞬间秒杀功能,大大减少了数据库的压力,也提升了系统操作速度,使用起来实现很方便。
相关文章