Exemple #1
0
        public static void SortedSetTest1()
        {
            var keys = pool.GetClient().GetAllKeys();

            var str = "A,B,C,D,E,F,A,B,C,D,E,F,A,B,C,D,E,F,A,B,C,D,E,F";
            //var doctorIDs = new List<string>(str.Split(','));

            int count = 10;

            var doctorIDRepeatTime = 10000;
            var doctorIDs          = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            var repeatIds = new List <int>();

            for (int i = 0; i < doctorIDRepeatTime; i++)
            {
                repeatIds.AddRange(doctorIDs);
            }

            var ids = repeatIds.Select(c => c.ToString()).ToList();

            var watch = new Stopwatch();

            for (int i = 0; i < count; i++)
            {
                var key = i.ToString("");

                watch.Start();
                redis.AddRangeToList(key, ids);
                watch.Stop();
            }


            Console.WriteLine(string.Format("AddRangeToList cost:{0}", watch.ElapsedMilliseconds));

            watch = new Stopwatch();

            for (int i = 0; i < count; i++)
            {
                var key = "_" + i.ToString();

                watch.Start();
                redis.AddRangeToListEx(key, ids);
                watch.Stop();
            }

            Console.WriteLine(string.Format("AddRangeToListEx cost:{0}", watch.ElapsedMilliseconds));

            //创建机构可分配健管师ID缓存
            //var setid = "DoctorsToAssign_125";
            //redis.AddRangeToListEx(setid, ids);
            //redis.ExpireEntryIn(setid, TimeSpan.FromSeconds(30));

            //redis.Remove(setid);


            //从缓存中获取一个健管师ID
            //var dcotorId = redis.PopItemFromList(setid);

            //如果分配失败,则将健管师ID重新放入缓存中
            //redis.AddItemToList(setid, "F");
        }