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_xx 
...

当用户加入秒杀活动后,查询出当前时间秒杀活动参与的SKU列表中是否有商品:

smembers secKill_timeVR

如果存在,则只有当前的用户可以继续下单,否则抢购失败。

如果用户抢购成功,则必须将该商品从Redis库中删除:

srem secKill_timeVR sku_x

到此,以上的操作就完成了Redis实现瞬间秒杀功能,大大减少了数据库的压力,也提升了系统操作速度,使用起来实现很方便。


数据运维技术 » Redis瞬间实现商品秒杀(使用redis做商品秒杀)