大致需求是这样:
数据库有一个表,生成了1万个(后面更多)唯一抽奖码,用户点击抽奖的时候会分配一个抽奖码,要求每个用户拿到的不一样,用户每拿到1个抽奖码之后会把抽奖码的状态改为已使用之类的,在没有大量并发的情况下是正常使用的,现在就是考虑并发的情况下可能两个用户拿到的是一个抽奖码,想听听大伙的解决方案,谢谢。。
数据库有一个表,生成了1万个(后面更多)唯一抽奖码,用户点击抽奖的时候会分配一个抽奖码,要求每个用户拿到的不一样,用户每拿到1个抽奖码之后会把抽奖码的状态改为已使用之类的,在没有大量并发的情况下是正常使用的,现在就是考虑并发的情况下可能两个用户拿到的是一个抽奖码,想听听大伙的解决方案,谢谢。。
解决方案 »
- 急!求hibernate HQL语句一条。
- 有一个头痛的字符串匹配
- 帮我看看哪出问题了
- Oscache设置JMS集群启动weblogic报错
- 如何把JBOSS的LOG4J的配置和应用程序的LOG4J的配置分成两个文件
- 请高手帮帮忙,在tomcat里,我有一个工程在webapps,目录下,webcome(急)
- c标签导致jsp页面空白问题
- 请问有多少人在用hibernate做你们的项目?好用吗?
- Could not initialize class com.mchange.v2.c3p0.ComboPooledDataSource
- json合并数据问题请教
- JDBC中的一个小问题
- RPC和RMI的区别
1、只用数据库:
while(true){
获取一个码a
update tb set status=已使用 where 码=码a and status=未使用
if(更新成功)break;
}
return 码a2、增加队列
初始化:把一万个码全部放入队列里。
抽奖:
码a = 队列.pop();
update tb set status=已使用 where 码=码a and status=未使用
if(更新成功)return 码a
redis也考虑了,有个问题就是,如果1万个抽奖码(后面会更多)都缓存在redis里面,如果做到和数据库很好地同步呢?