您的位置:首页 > 数据库 > Redis

使用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();
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: