使用Redis List简单实现抢红包
2017-02-01 15:10
453 查看
在这里不讨论抢红包的算法,只用redis简单尝试解决抢红包。借助redis单线程和List的POP方法。
static void Main(string[] args) { IRedisHelper redisClient = RedisFactory.CreateRedisRepository(); //初始化假数据 //红包的算法这里不关注 只用redis简单解决并发问题 double money = 20000; //200元 2W分 //微信群200人 //20人抢 //发10包 double singlePacket = 20000 / 10; var key = "redisPacketKeyTest2"; for (int i = 0; i < 10; i++) { redisClient.ListLeftPush(key, singlePacket); } //开抢 for (int i = 0; i < 20; i++) { new Thread((obj) => { Console.WriteLine("有人开抢"); var count = (int) obj; var result = redisClient.ListLeftPop<double>(key); if (result > 0) { Console.WriteLine("第" + (count + 1) + "人抢到了" + result); } else { Console.WriteLine("第" + (count + 1) + "人没抢到"); } }).Start(i); } Console.Read(); }
相关文章推荐
- list使用与简单实现
- Python 使用list实现简单的集合set
- python实现简单redis客户端(3)使用asyncio添加异步支持
- C#使用泛型数组简单实现一个列表List
- java使用jeids实现redis2.6的list操作(1)
- Python 使用list实现简单的堆栈
- Python使用Redis实现作业调度系统(超简单)
- java使用jeids实现redis2.6的list操作(4)
- Redis-port安装使用实现redis迁移codis,以及简单redis pipe实现将mysql迁移redis
- 简单使用redis实现sso单点登录
- Python 使用list实现简单的set
- Python使用Redis实现一个简单作业调度系统
- 使用 redis list 实现滑动窗口
- java使用jeids实现redis2.6的list操作(3)
- Redis(ZADD)使用Java API实现简单排名
- Python 使用list实现简单的map
- API接口非幂等性问题及使用redis实现简单的分布式锁
- Python使用Redis实现作业调度系统(超简单)
- 使用list实现一个简单的Listener管理
- java使用jeids实现redis2.6的list操作(2)