コード例 #1
0
ファイル: Rediscache.cs プロジェクト: Skysper/CacheManager
        /// <summary>
        /// query and format the value result by cache key type
        /// Hash、List、Set and String etc.
        /// they all has different format in order to modify by client
        /// </summary>
        /// <param name="key"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public string QueryWithType(string key, CacheKeyType type)
        {
            if (!_client.IsConnected)
            {
                return(string.Empty);
            }
            try
            {
                IDatabase database = _client.GetDatabase();
                IOperator op       = null;
                switch (type)
                {
                case CacheKeyType.None: break;

                case CacheKeyType.String:
                    op = new RedisString();
                    break;

                case CacheKeyType.Hash:
                    op = new RedisHash();
                    break;

                case CacheKeyType.List:
                    op = new RedisList();
                    break;

                case CacheKeyType.Set:
                    op = new RedisSet();
                    break;

                case CacheKeyType.SortedSet:
                    op = new RedisSortedSet();
                    break;
                }
                if (op == null)
                {
                    return(string.Empty);
                }
                else
                {
                    return(op.Format(database, key));
                }
            }
            catch (Exception ex)
            {
                return(string.Empty);
            }
        }