Пример #1
0
        //1043 //不支持异常回滚
        static void RedisInsertStringWithTran()
        {
            var redis = StackExchange.Redis.ConnectionMultiplexer.Connect("localhost:6379");

            StackExchange.Redis.IDatabase db = redis.GetDatabase();

            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();

            var tran = db.CreateTransaction();

            Enumerable.Range(0, 100000).ToList().ForEach(a => {
                tran.StringSetAsync($"strKey{a.ToString().PadLeft(7, '0')}", $"strValue{a.ToString().PadLeft(7, '0')}");
                if (a % 1000 == 0)
                {
                    string key1 = "key1";
                    tran.SetAddAsync(key1, "key1");
                    tran.SetAddAsync(key1, "key2");
                    tran.SetAddAsync("key1", "key1");
                    if (!tran.Execute())
                    {
                        Console.WriteLine("false");
                    }
                    tran = db.CreateTransaction();
                    Console.WriteLine($"it takes {sw.Elapsed.TotalMilliseconds}mm");
                }
            });

            tran.Execute();
            sw.Stop();

            Console.WriteLine($"total takes {sw.Elapsed.TotalMilliseconds}mm");
        }
Пример #2
0
        static void SetRedisList()
        {
            var list = GetDatabaseList();

            var redis = StackExchange.Redis.ConnectionMultiplexer.Connect("localhost:6379");

            StackExchange.Redis.IDatabase db = redis.GetDatabase();

            var sw = new System.Diagnostics.Stopwatch();

            sw.Start();

            var tran  = db.CreateTransaction();
            var index = 0;

            list.ForEach(item =>
            {
                index++;
                var dic = ToDic(item).Select(a => new StackExchange.Redis.HashEntry(a.Key, a.Value ?? "")).ToArray();
                tran.HashSetAsync("database_student_" + item.Id, dic);

                if (index % 10000 == 0)
                {
                    tran.Execute();
                    Console.WriteLine($"SetRedisList {index} {sw.Elapsed.TotalMilliseconds}mm");
                }
            });

            tran.Execute();
            sw.Stop();
            Console.WriteLine($"SetRedisList save complete {sw.Elapsed.TotalMilliseconds}mm");
        }