using System; 

using System.Collections.Generic; 

using System.Linq; 

using System.Text; 

using ServiceStack.Redis; 

namespace Com.QFGame.QNX.Community.Redis 

{ 

    public class RedisBase 

    { 

        private static string RedisPath = System.Configuration.ConfigurationSettings.AppSettings["RedisPath"]; 

        #region -- 连接信息 -- 

        //10.0.18.8:6379 

        public static PooledRedisClientManager prcm = CreateManager(new string[] { RedisPath }, new string[] { RedisPath }); 

        private static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts) 

        {  

            // 支持读写分离,均衡负载  

            return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig 

            { 

                MaxWritePoolSize = , // “写”链接池链接数  

                MaxReadPoolSize = , // “读”链接池链接数  

                AutoStart = true, 

            }); 

        } 

        #endregion 

        #region -- Item -- 

        /// <summary> 

        /// 设置单体 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="t"></param> 

        /// <param name="timeSpan"></param> 

        /// <returns></returns> 

        public static bool Item_Set<T>(string key, T t) 

        { 

            try

            { 

                using (IRedisClient redis = prcm.GetClient()) 

                { 

                    return redis.Set<T>(key, t, new TimeSpan(, , )); 

                } 

            } 

            catch (Exception ex) 

            { 

                // LogInfo 

            } 

            return false; 

        } 

        /// <summary> 

        /// 获取单体 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <returns></returns> 

        public static T Item_Get<T>(string key) where T : class

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.Get<T>(key); 

            } 

        } 

        /// <summary> 

        /// 移除单体 

        /// </summary> 

        /// <param name="key"></param> 

        public static bool Item_Remove(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.Remove(key); 

            } 

        } 

        #endregion 

        #region -- List -- 

        public static void List_Add<T>(string key, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var redisTypedClient = redis.GetTypedClient<T>(); 

                redisTypedClient.AddItemToList(redisTypedClient.Lists[key], t); 

            } 

        } 

        public static bool List_Remove<T>(string key, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var redisTypedClient = redis.GetTypedClient<T>(); 

                return redisTypedClient.RemoveItemFromList(redisTypedClient.Lists[key], t) > ; 

            } 

        } 

        public static void List_RemoveAll<T>(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var redisTypedClient = redis.GetTypedClient<T>(); 

                redisTypedClient.Lists[key].RemoveAll(); 

            } 

        } 

        public static int List_Count(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.GetListCount(key); 

            }  

        } 

        public static List<T> List_GetRange<T>(string key, int start, int count) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var c = redis.GetTypedClient<T>(); 

                return c.Lists[key].GetRange(start, start + count - ); 

            } 

        } 

        public static List<T> List_GetList<T>(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var c = redis.GetTypedClient<T>(); 

                return c.Lists[key].GetRange(, c.Lists[key].Count); 

            } 

        } 

        public static List<T> List_GetList<T>(string key, int pageIndex, int pageSize) 

        { 

            int start = pageSize * (pageIndex - ); 

            return List_GetRange<T>(key, start, pageSize); 

        } 

        /// <summary> 

        /// 设置缓存过期 

        /// </summary> 

        /// <param name="key"></param> 

        /// <param name="datetime"></param> 

        public static void List_SetExpire(string key, DateTime datetime) 

        { 

                using (IRedisClient redis = prcm.GetClient()) 

                { 

                        redis.ExpireEntryAt(key, datetime); 

                } 

        } 

        #endregion 

        #region -- Set -- 

        public static void Set_Add<T>(string key, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var redisTypedClient = redis.GetTypedClient<T>(); 

                redisTypedClient.Sets[key].Add(t); 

            } 

        } 

        public static bool Set_Contains<T>(string key, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var redisTypedClient = redis.GetTypedClient<T>(); 

                return redisTypedClient.Sets[key].Contains(t); 

            } 

        } 

        public static bool Set_Remove<T>(string key, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var redisTypedClient = redis.GetTypedClient<T>(); 

                return redisTypedClient.Sets[key].Remove(t); 

            } 

        } 

        #endregion 

        #region -- Hash -- 

        /// <summary> 

        /// 判断某个数据是否已经被缓存 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="dataKey"></param> 

        /// <returns></returns> 

        public static bool Hash_Exist<T>(string key, string dataKey) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.HashContainsEntry(key, dataKey); 

            } 

        } 

        /// <summary> 

        /// 存储数据到hash表 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="dataKey"></param> 

        /// <returns></returns> 

        public static bool Hash_Set<T>(string key, string dataKey, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                string value = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t); 

                return redis.SetEntryInHash(key, dataKey, value); 

            } 

        } 

        /// <summary> 

        /// 移除hash中的某值 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="dataKey"></param> 

        /// <returns></returns> 

        public static bool Hash_Remove(string key, string dataKey) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.RemoveEntryFromHash(key, dataKey); 

            } 

        } 

        /// <summary> 

        /// 移除整个hash 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="dataKey"></param> 

        /// <returns></returns> 

        public static bool Hash_Remove(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.Remove(key); 

            } 

        } 

        /// <summary> 

        /// 从hash表获取数据 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="dataKey"></param> 

        /// <returns></returns> 

        public static T Hash_Get<T>(string key, string dataKey) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                string value = redis.GetValueFromHash(key, dataKey); 

                return ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(value); 

            } 

        } 

        /// <summary> 

        /// 获取整个hash的数据 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <returns></returns> 

        public static List<T> Hash_GetAll<T>(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var list = redis.GetHashValues(key); 

                if (list != null && list.Count > ) 

                { 

                    List<T> result = new List<T>(); 

                    foreach (var item in list) 

                    { 

                        var value = ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(item); 

                        result.Add(value); 

                    } 

                    return result; 

                } 

                return null; 

            } 

        } 

        /// <summary> 

        /// 设置缓存过期 

        /// </summary> 

        /// <param name="key"></param> 

        /// <param name="datetime"></param> 

        public static void Hash_SetExpire(string key, DateTime datetime) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                redis.ExpireEntryAt(key, datetime); 

            } 

        } 

        #endregion 

        #region -- SortedSet -- 

        /// <summary> 

        ///  添加数据到 SortedSet 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="t"></param> 

        /// <param name="score"></param> 

        public static bool SortedSet_Add<T>(string key, T t, double score) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                string value = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t); 

                return redis.AddItemToSortedSet(key, value, score); 

            } 

        } 

        /// <summary> 

        /// 移除数据从SortedSet 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="t"></param> 

        /// <returns></returns> 

        public static bool SortedSet_Remove<T>(string key, T t) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                string value = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t); 

                return redis.RemoveItemFromSortedSet(key, value); 

            } 

        } 

        /// <summary> 

        /// 修剪SortedSet 

        /// </summary> 

        /// <param name="key"></param> 

        /// <param name="size">保留的条数</param> 

        /// <returns></returns> 

        public static int SortedSet_Trim(string key, int size) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.RemoveRangeFromSortedSet(key, size, ); 

            } 

        } 

        /// <summary> 

        /// 获取SortedSet的长度 

        /// </summary> 

        /// <param name="key"></param> 

        /// <returns></returns> 

        public static int SortedSet_Count(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                return redis.GetSortedSetCount(key); 

            } 

        } 

        /// <summary> 

        /// 获取SortedSet的分页数据 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="pageIndex"></param> 

        /// <param name="pageSize"></param> 

        /// <returns></returns> 

        public static List<T> SortedSet_GetList<T>(string key, int pageIndex, int pageSize) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var list = redis.GetRangeFromSortedSet(key, (pageIndex - ) * pageSize, pageIndex * pageSize - );  

                if (list != null && list.Count > ) 

                { 

                    List<T> result = new List<T>(); 

                    foreach (var item in list) 

                    { 

                        var data = ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(item); 

                        result.Add(data); 

                    } 

                    return result; 

                } 

            } 

            return null; 

        } 

        /// <summary> 

        /// 获取SortedSet的全部数据 

        /// </summary> 

        /// <typeparam name="T"></typeparam> 

        /// <param name="key"></param> 

        /// <param name="pageIndex"></param> 

        /// <param name="pageSize"></param> 

        /// <returns></returns> 

        public static List<T> SortedSet_GetListALL<T>(string key) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                var list = redis.GetRangeFromSortedSet(key, , ); 

                if (list != null && list.Count > ) 

                { 

                    List<T> result = new List<T>(); 

                    foreach (var item in list) 

                    { 

                        var data = ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(item); 

                        result.Add(data); 

                    } 

                    return result; 

                } 

            } 

            return null; 

        } 

        /// <summary> 

        /// 设置缓存过期 

        /// </summary> 

        /// <param name="key"></param> 

        /// <param name="datetime"></param> 

        public static void SortedSet_SetExpire(string key, DateTime datetime) 

        { 

            using (IRedisClient redis = prcm.GetClient()) 

            { 

                redis.ExpireEntryAt(key, datetime); 

            } 

        } 

        //public static double SortedSet_GetItemScore<T>(string key,T t) 

        //{ 

        //    using (IRedisClient redis = prcm.GetClient()) 

        //    { 

        //        var data = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t); 

        //        return redis.GetItemScoreInSortedSet(key, data); 

        //    } 

        //    return 0; 

        //} 

        #endregion 

    } 

}
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.Redis;
       
namespace Com.QFGame.QNX.Community.Redis
{
    public class RedisBase
    {
       
        private static string RedisPath = System.Configuration.ConfigurationSettings.AppSettings["RedisPath"];
       
        #region -- 连接信息 --
        //10.0.18.8:6379
        public static PooledRedisClientManager prcm = CreateManager(new string[] { RedisPath }, new string[] { RedisPath });
        private static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)
        
            // 支持读写分离,均衡负载 
            return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig
            {
                MaxWritePoolSize = 5, // “写”链接池链接数 
                MaxReadPoolSize = 5, // “读”链接池链接数 
                AutoStart = true,
            });
        }
        #endregion
       
       
       
       
       
       
       
       
       
       
        #region -- Item --
        /// <summary>
        /// 设置单体
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="t"></param>
        /// <param name="timeSpan"></param>
        /// <returns></returns>
        public static bool Item_Set<T>(string key, T t)
        {
            try
            {
                using (IRedisClient redis = prcm.GetClient())
                {
                    return redis.Set<T>(key, t, new TimeSpan(1, 0, 0));
                }
            }
            catch (Exception ex)
            {
                // LogInfo
            }
            return false;
        }
       
        /// <summary>
        /// 获取单体
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        public static T Item_Get<T>(string key) where T : class
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.Get<T>(key);
            }
        }
       
        /// <summary>
        /// 移除单体
        /// </summary>
        /// <param name="key"></param>
        public static bool Item_Remove(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.Remove(key);
            }
        }
       
        #endregion
       
        #region -- List --
       
        public static void List_Add<T>(string key, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var redisTypedClient = redis.GetTypedClient<T>();
                redisTypedClient.AddItemToList(redisTypedClient.Lists[key], t);
            }
        }
       
               
       
        public static bool List_Remove<T>(string key, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var redisTypedClient = redis.GetTypedClient<T>();
                return redisTypedClient.RemoveItemFromList(redisTypedClient.Lists[key], t) > 0;
            }
        }
        public static void List_RemoveAll<T>(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var redisTypedClient = redis.GetTypedClient<T>();
                redisTypedClient.Lists[key].RemoveAll();
            }
        }
       
        public static int List_Count(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.GetListCount(key);
            
        }
       
        public static List<T> List_GetRange<T>(string key, int start, int count)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var c = redis.GetTypedClient<T>();
                return c.Lists[key].GetRange(start, start + count - 1);
            }
        }
       
       
        public static List<T> List_GetList<T>(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var c = redis.GetTypedClient<T>();
                return c.Lists[key].GetRange(0, c.Lists[key].Count);
            }
        }
       
        public static List<T> List_GetList<T>(string key, int pageIndex, int pageSize)
        {
            int start = pageSize * (pageIndex - 1);
            return List_GetRange<T>(key, start, pageSize);
        }
       
        /// <summary>
        /// 设置缓存过期
        /// </summary>
        /// <param name="key"></param>
        /// <param name="datetime"></param>
        public static void List_SetExpire(string key, DateTime datetime)
        {
                using (IRedisClient redis = prcm.GetClient())
                {
                        redis.ExpireEntryAt(key, datetime);
                }
        }
        #endregion
       
        #region -- Set --
        public static void Set_Add<T>(string key, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var redisTypedClient = redis.GetTypedClient<T>();
                redisTypedClient.Sets[key].Add(t);
            }
        }
        public static bool Set_Contains<T>(string key, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var redisTypedClient = redis.GetTypedClient<T>();
                return redisTypedClient.Sets[key].Contains(t);
            }
        }
        public static bool Set_Remove<T>(string key, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var redisTypedClient = redis.GetTypedClient<T>();
                return redisTypedClient.Sets[key].Remove(t);
            }
        }
        #endregion
       
       
        #region -- Hash --
        /// <summary>
        /// 判断某个数据是否已经被缓存
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="dataKey"></param>
        /// <returns></returns>
        public static bool Hash_Exist<T>(string key, string dataKey)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.HashContainsEntry(key, dataKey);
            }
        }
       
        /// <summary>
        /// 存储数据到hash表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="dataKey"></param>
        /// <returns></returns>
        public static bool Hash_Set<T>(string key, string dataKey, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                string value = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t);
                return redis.SetEntryInHash(key, dataKey, value);
            }
        }
        /// <summary>
        /// 移除hash中的某值
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="dataKey"></param>
        /// <returns></returns>
        public static bool Hash_Remove(string key, string dataKey)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.RemoveEntryFromHash(key, dataKey);
            }
        }
        /// <summary>
        /// 移除整个hash
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="dataKey"></param>
        /// <returns></returns>
        public static bool Hash_Remove(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.Remove(key);
            }
        }
        /// <summary>
        /// 从hash表获取数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="dataKey"></param>
        /// <returns></returns>
        public static T Hash_Get<T>(string key, string dataKey)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                string value = redis.GetValueFromHash(key, dataKey);
                return ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(value);
            }
        }
        /// <summary>
        /// 获取整个hash的数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        public static List<T> Hash_GetAll<T>(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var list = redis.GetHashValues(key);
                if (list != null && list.Count > 0)
                {
                    List<T> result = new List<T>();
                    foreach (var item in list)
                    {
                        var value = ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(item);
                        result.Add(value);
                    }
                    return result;
                }
                return null;
            }
        }
        /// <summary>
        /// 设置缓存过期
        /// </summary>
        /// <param name="key"></param>
        /// <param name="datetime"></param>
        public static void Hash_SetExpire(string key, DateTime datetime)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                redis.ExpireEntryAt(key, datetime);
            }
        }
        #endregion
       
       
       
        #region -- SortedSet --
        /// <summary>
        ///  添加数据到 SortedSet
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="t"></param>
        /// <param name="score"></param>
        public static bool SortedSet_Add<T>(string key, T t, double score)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                string value = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t);
                return redis.AddItemToSortedSet(key, value, score);
            }
        }
        /// <summary>
        /// 移除数据从SortedSet
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="t"></param>
        /// <returns></returns>
        public static bool SortedSet_Remove<T>(string key, T t)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                string value = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t);
                return redis.RemoveItemFromSortedSet(key, value);
            }
        }
        /// <summary>
        /// 修剪SortedSet
        /// </summary>
        /// <param name="key"></param>
        /// <param name="size">保留的条数</param>
        /// <returns></returns>
        public static int SortedSet_Trim(string key, int size)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.RemoveRangeFromSortedSet(key, size, 9999999);
            }
        }
        /// <summary>
        /// 获取SortedSet的长度
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static int SortedSet_Count(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                return redis.GetSortedSetCount(key);
            }
        }
       
        /// <summary>
        /// 获取SortedSet的分页数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public static List<T> SortedSet_GetList<T>(string key, int pageIndex, int pageSize)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var list = redis.GetRangeFromSortedSet(key, (pageIndex - 1) * pageSize, pageIndex * pageSize - 1); 
                if (list != null && list.Count > 0)
                {
                    List<T> result = new List<T>();
                    foreach (var item in list)
                    {
                        var data = ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(item);
                        result.Add(data);
                    }
                    return result;
                }
            }
            return null;
        }
       
       
        /// <summary>
        /// 获取SortedSet的全部数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public static List<T> SortedSet_GetListALL<T>(string key)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                var list = redis.GetRangeFromSortedSet(key, 0, 9999999);
                if (list != null && list.Count > 0)
                {
                    List<T> result = new List<T>();
                    foreach (var item in list)
                    {
                        var data = ServiceStack.Text.JsonSerializer.DeserializeFromString<T>(item);
                        result.Add(data);
                    }
                    return result;
                }
            }
            return null;
        }
       
        /// <summary>
        /// 设置缓存过期
        /// </summary>
        /// <param name="key"></param>
        /// <param name="datetime"></param>
        public static void SortedSet_SetExpire(string key, DateTime datetime)
        {
            using (IRedisClient redis = prcm.GetClient())
            {
                redis.ExpireEntryAt(key, datetime);
            }
        }
       
        //public static double SortedSet_GetItemScore<T>(string key,T t)
        //{
        //    using (IRedisClient redis = prcm.GetClient())
        //    {
        //        var data = ServiceStack.Text.JsonSerializer.SerializeToString<T>(t);
        //        return redis.GetItemScoreInSortedSet(key, data);
        //    }
        //    return 0;
        //}
       
        #endregion
       
    }
}

redisHelper的更多相关文章

  1. Basic Tutorials of Redis(9) -First Edition RedisHelper

    After learning the basic opreation of Redis,we should take some time to summarize the usage. And I w ...

  2. C# Azure 存储-分布式缓存Redis工具类 RedisHelper

    using System; using System.Collections.Generic; using Newtonsoft.Json; using StackExchange.Redis; na ...

  3. Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例

    本文目录 1. 摘要 2. Redis配置 3. RedisHelper 4.使用实例 5. 总结 1.  摘要 由于內存存取速度远高于磁盘读取的特性,为了程序效率提高性能,通常会把常用的不常变动的数 ...

  4. [C#] 使用 StackExchange.Redis 封装属于自己的 RedisHelper

    使用 StackExchange.Redis 封装属于自己的 RedisHelper 目录 核心类 ConnectionMultiplexer 字符串(String) 哈希(Hash) 列表(List ...

  5. RedisHelper帮助类

    using Newtonsoft.Json; using RedLockNet.SERedis; using RedLockNet.SERedis.Configuration; using Stack ...

  6. RedisHelper in C#

    自己写了一个RedisHelper,现贴出来,希望各位大神能够指正和优化. using System; using StackExchange.Redis; using System.Configur ...

  7. 使用 StackExchange.Redis 封装属于自己的 RedisHelper

    目录 核心类 ConnectionMultiplexer 字符串(String) 哈希(Hash) 列表(List) 有序集合(sorted set) Key 操作 发布订阅 其他 简介 目前 .NE ...

  8. RedisHelper (C#)

    <add key="RedisServers" value="172.20.2.90:9379,password=Aa+123456789" /> ...

  9. RedisHelper Redis帮助类

    using StackExchange.Redis; using System; using System.Collections.Generic; using System.IO; using Sy ...

  10. Redis:RedisHelper(5)

    /// <summary> /// Redis 助手 /// </summary> public class RedisHelper { /// <summary> ...

随机推荐

  1. C#和JAVA的RSA密钥、公钥转换

    C#的秘钥跟JAVA的密钥区别   RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1 ...

  2. appium日志示例解读

    http://www.colabug.com/thread-1048952-1-1.html

  3. Effective前端(3)用CSS画一个三角形

    来源:https://zhuanlan.zhihu.com/p/26160325 三角形的场景很常见,打开一个页面可以看到各种各样的三角形: 由于div一般是四边形,要画个三角形并不是那么直观.你可以 ...

  4. 阿里云安装jdk,tomcat,maven,svn,git,nginx

    1. 首先通过xftp等工具上传安装包 2. 配置目录 cd usr mkdir java cd java mkdir jdk mkdir tomcatmkdir maven 3. 安装jdk 3.1 ...

  5. oracle的decode函数

    以下转自百度, 类似于case... when... then...else...end... DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供 ...

  6. ROS学习(十)—— 使用rosed编辑ROS中的文件

    一.rosed 1.作用: 直接编辑一个文件而不需要打开完整路径名 2.语法: rosed [package_name] [filename] 3.如果不知道编译哪个文件名,可以使用tab进行查询 r ...

  7. C#编写的服务程序启动服务时报错误1053

    Application.StartupPath 已知解决方案一:        读写文件路径的问题 用 $"{Application.StartupPath}\\config.txt&quo ...

  8. ORACLE在线切换undo表空间

    切换undo的一些步骤和基本原则 原文:http://www.xifenfei.com/3367.html 查看原undo相关参数 SHOW PARAMETER UNDO; 创建新undo空间 cre ...

  9. emergency monitoring和real-time ADDM

    emergency monitoring面临的挑战: 1.sick systems 2.slow database -所有用户查询响应慢 -性能界面刷新数据慢 -吞吐量严重降低 3.因为内部资源竞争数 ...

  10. 12C的审计模式

    1.Mixed Auditing Policy 混合审计模式支持新的审计引擎和老的审计引擎一起工作数据库升级后,已有的审计设置不会受到影响.但是官方建议迁移到统一审计模式.数据库创建后,默认是使用混合 ...