首页 > 其他 > 详细

Redis抢红包功能

时间:2020-06-30 16:35:39      阅读:58      评论:0      收藏:0      [点我收藏+]
//需要引用ServiceStack.Redis;

static void Main(string[] args)
        {
            double totalAmount = 100;
            int num = 10;
            double minAmcount = 0.01;
            RedisClient client = new RedisClient("127.0.0.1", 6379);
            Queue<double> qu = new Queue<double>();
            Random r = new Random();
            for (int i = 1; i < num; i++)
            {
                double safeAmount = (totalAmount - (num - 1) * minAmcount) / (num - 1);
                double money = NextDouble(r, minAmcount * 100, safeAmount * 100) / 100;
                money = Math.Round(money, 2, MidpointRounding.AwayFromZero);
                totalAmount = totalAmount - money;
                totalAmount = Math.Round(totalAmount, 2, MidpointRounding.AwayFromZero);

                qu.Enqueue(money);

                Console.WriteLine("" + i + "个红包:" + money + "元,余额:" + totalAmount + "");
            }

            client.Add<Queue<double>>("key", qu);
            Queue<double> que = client.Get<Queue<double>>("key");
            if (que.Count>0)
            {
                double am = que.Dequeue();
                var t = new { name = "123213", amount = am, date = DateTime.Now };
            }
            else
            {

            }

        }

        protected static double NextDouble(Random random,double miniDouble,double maxiDouble)
        {
            if (random != null)
            {
                return random.NextDouble() * (maxiDouble - miniDouble) + miniDouble;
            }
            else
            {
                return 0.0d;
            }
        }

 

Redis抢红包功能

原文:https://www.cnblogs.com/lvjingchao/p/13214307.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!