示例#1
0
        static public async Task RunAsync()
        {
            // string connectionString = "127.0.0.1:30001,127.0.0.1:30002,127.0.0.1:30003,127.0.0.1:30004,127.0.0.1:30005,127.0.0.1:30006";
            string connectionStrings = "localhost:6379";

            var configuration = new ConfigurationOptions
            {
                AbortOnConnectFail = false
            };

            try
            {
                using (var redisConnection = new RedisConnection(connectionStrings, configuration))
                {
                    var d     = new RedisDictionary <string, Crap>(redisConnection.GetDatabase(), "test", new JsonRedisSerializer()); // new MsgPackRedisSerializer());
                    var dtest = new Dictionary <int, string>();
                    dtest.Add(1, "Ross");
                    dtest.Add(2, "Tammy");

                    var v1 = await GetAsync(d, "age", name => 2);
                    await SetAsync(d, "age", (v1 + 2));

                    v1 = await GetAsync(d, "age", name => 3);

                    var v2 = await GetAsync(d, "dtest", name => dtest);

                    v2 = await GetAsync(d, "dtest", name => dtest);



                    ////var v1 = await GetAsync(d, "age", name => (decimal)2);
                    ////await SetAsync(d, "age", (v1 + 2));
                    ////v1 = await GetAsync(d, "age", name => (decimal)3);

                    //return;

                    var lockAcquisition = new RedisCacheKeyLockAcquisition();
                    var cacheContainer  = new StringRedisCacheContainer(redisConnection, "RedisCache"); // new HashRedisCacheContainer(redisConnection);
                    var cacheSeriizer   = new MsgPackRedisSerializer();                                 // new JsonRedisSerializer();
                    var cache           = new RedisCache(redisConnection, lockAcquisition, cacheContainer, cacheSeriizer);

                    var xxx = await cache.GetAsync("app:app:00000000-0000-0000-0000-0000000000a1", async (name, args) =>
                    {
                        var app = new AppEntity
                        {
                            AppId            = Guid.NewGuid(),
                            CreatedDateTime  = DateTime.Now,
                            ModifiedDateTime = DateTime.Now,
                            Description      = "Hello",
                            Enabled          = true,
                            Name             = "test",
                            TenantId         = Guid.Empty,
                        };

                        await Task.Delay(0);

                        return(new CacheDataInfo <AppEntity>
                        {
                            KeepAlive = TimeSpan.FromHours(1),
                            NewCacheData = app, //"Hello, Ross"
                        });

                        // return (CacheDataInfo<string>)null;
                    });

                    // cache.Remove("test");


                    //CacheThreadTest(redisConnection);
                    //LockThreadTest(redisConnection);
                    //SerializerTests(redisConnection);
                    //Test4(redisConnection);
                    //Test1(redisConnection);
                    //Test3(redisConnection);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
        static public async Task RunAsync()
        {
            // string connectionString = "127.0.0.1:30001,127.0.0.1:30002,127.0.0.1:30003,127.0.0.1:30004,127.0.0.1:30005,127.0.0.1:30006";
            string connectionStrings = "localhost:6379,abortConnect=False";

            try
            {
                // var redisNamespace = "dev:hubster:identity";

                using (var redisConnection = new RedisConnection(connectionStrings))
                {
                    var lockAcquisition = new RedisDLM();
                    // var container = new HashRedisCacheContainer(redisConnection, $"{redisNamespace}:cache");
                    var container = new StringRedisCacheContainer(redisConnection, $"dev:hubster:identity:cache");
                    var cache     = new RedisCache(redisConnection, lockAcquisition, container);

                    var t1 = await cache.GetAsync("test1", (name, args) =>
                    {
                        return(Task.FromResult(new CacheDataInfo <string>
                        {
                            NewCacheData = "Ross1",
                            KeepAlive = TimeSpan.FromSeconds(60)
                        }));
                    });

                    //var d = new RedisDictionary<string, Crap<TestClass>>(redisConnection.GetDatabase(), $"{redisNamespace}:dick", new JsonRedisSerializer()); // new MsgPackRedisSerializer());
                    //var t1 = d.GetOrAdd("test", name =>
                    //{
                    //    return new Crap<TestClass> { Value = new TestClass { Id = 123, Name = "Hello" } };
                    //});

                    //t1 = await d.GetAsync("test");

                    // var d = new RedisDictionary<string, Crap>(redisConnection.GetDatabase(), "test", new JsonRedisSerializer()); // new MsgPackRedisSerializer());
                    // var dtest = new Dictionary<int, string>();
                    //dtest.Add(1, "Ross");
                    //dtest.Add(2, "Tammy");

                    // var v1 = await GetAsync(d, "age", name => 2);
                    //await SetAsync(d, "age", (v1 + 2));
                    //v1 = await GetAsync(d, "age", name => 3);

                    //var v2 = await GetAsync(d, "dtest", name => dtest);
                    //v2 = await GetAsync(d, "dtest", name => dtest);

                    ////var v1 = await GetAsync(d, "age", name => (decimal)2);
                    ////await SetAsync(d, "age", (v1 + 2));
                    ////v1 = await GetAsync(d, "age", name => (decimal)3);

                    //return;

                    //var lockAcquisition = new RedisCacheKeyLockAcquisition();
                    //var cacheContainer = new StringRedisCacheContainer(redisConnection, "RedisCache"); // new HashRedisCacheContainer(redisConnection);
                    //var cacheSeriizer = new MsgPackRedisSerializer(); // new JsonRedisSerializer();
                    //var cache = new RedisCache(redisConnection, lockAcquisition, cacheContainer, cacheSeriizer);

                    //var xxx = await cache.GetAsync("test", async (name, args) =>
                    //{
                    //    var app = new AppEntity
                    //    {
                    //        AppId = Guid.NewGuid(),
                    //        CreatedDateTime = DateTime.Now,
                    //        ModifiedDateTime = DateTime.Now,
                    //        Description = "Hello",
                    //        Enabled = true,
                    //        Name = "test",
                    //        TenantId = Guid.Empty,
                    //    };

                    //    await Task.Delay(0);

                    //    return new CacheDataInfo<AppEntity>
                    //    {
                    //        KeepAlive = TimeSpan.FromHours(1),
                    //        NewCacheData = app, //"Hello, Ross"
                    //    };

                    //    // return (CacheDataInfo<string>)null;
                    //});

                    //await cache.RemoveAsync("test");

                    //CacheThreadTest(redisConnection);
                    //LockThreadTest(redisConnection);
                    //SerializerTests(redisConnection);
                    //Test4(redisConnection);
                    //Test1(redisConnection);
                    //Test3(redisConnection);
                }

                await Task.CompletedTask;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }