利用redis进行商品秒杀

Posted wushuaiblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用redis进行商品秒杀相关的知识,希望对你有一定的参考价值。

这里是用redis的list集合开发,redis的list集合是具有原子性的,不必担心多线程时会取到重复的数据,即使请求同时到达也会排队进行数据操作

1. 先说说大概思路,关于数据库库存字段的设计.数据类型设置为非负数的unsigned,  如果秒杀的商品数量为50个. 秒杀开始前在redis里面建一个类型为list,键名为goods_num_商品id 的键,存入50个元素.元素值可随意取. 

2. 建一个键名为user_id_商品id 的键,每次用户秒杀成功,把用户id存入里面,用来判断是否成功秒杀过.如果成功秒杀过则直接返回提示. 下面贴代码

技术分享图片

技术分享图片

 

这里的库存表的增减,可以不写,到秒杀活动结束后再进行数据操作.这只是简单的模拟,真实的业务场景可能会更加的复杂. 

 

以上是关于利用redis进行商品秒杀的主要内容,如果未能解决你的问题,请参考以下文章

高并发之商品秒杀系统

分布式环境下利用Redis实现分布式锁

利用乐观锁及redis解决电商秒杀高并发基本逻辑

利用redis List队列简单实现秒杀 PHP代码实现

秒杀系统设计思路

使用Redis+MQ+MySql实现商品秒杀