示例#1
0
        public void Store <T>(T t, object id) where T : IEntityPrivate
        {
            var itemkey = GetItemKey <T>(id);
            var tran    = _redis.CreateTransaction();

            tran.StringSetAsync(itemkey, _redisSerializer.Serilazer(t));
            tran.SetAddAsync(GetSetKey <T>(t.Rid), itemkey);
            tran.Execute();
        }
示例#2
0
        public void SetToCache <TResponse>(string listkey, string key, TResponse response)
        {
            var listurn = listkey;

            if (string.IsNullOrEmpty(listurn))
            {
                return;
            }

            var redis = _connectionMultiplexer.GetDatabase();

            var trans = redis.CreateTransaction();

            trans.StringSetAsync(key, RedisSerializer.Serilazer(response), new TimeSpan(0, 0, 30));
            trans.ListRightPushAsync(listurn, key);
            trans.Execute();

            if (redis.ListLength(listurn) >= 4)
            {//保存4条
                var removekey = redis.ListLeftPop(listurn);
                redis.KeyDelete(removekey.ToString());
            }
        }