ServiceStack.Redis

一、在Asp.net中使用Redis

  StackExchange.Redis和ServiceStack.Redis是Redis的.net常用框架。因为StackExchange.Redis只支持.net4.0及以上版本,但是由于很多项目的后台框架都是.net3.x的版本,所以本文只介绍ServiceStack.Redis的安装和使用。
1.在Visual Studio的项目中添加引用

这里写图片描述

2.选择使用Nuget安装包
  在浏览选项里搜索ServiceStack.Redis,并选择安装版本,如果项目后台框架.net版本过低,这里的redis客户端也要选择更低的版本。

这里写图片描述

3.安装成功后会显示新增的引用

这里写图片描述
  如果安装不成功会显示版本不兼容的问题,大家可以根据自己的.net版本选择不同的redis客户端,不局限于ServiceStack.Redis,记住千万不要更改自己项目的.net版本,因为很多历史原因,这里不再多说。

二、代码示例

public class RedisHelper
{
        public RedisHelper()
        {

        }
        //redis配置服务端IP和端口号
        public static RedisClient Redis = (RedisClient)CreateManager(new string[] { "10.12.75.126:6379" }, new string[] { "10.12.75.126:6379" }).GetClient();
        //缓存池
        PooledRedisClientManager prcm = new PooledRedisClientManager();

        //默认缓存过期时间(单位:秒)
        public int secondsTimeOut = 30 * 60;

        private readonly Regex userNameRegex = new Regex(@"\(.*?\)", RegexOptions.Singleline);

        ///<summary>
        ///缓冲池
        ///</summary>
        ///<param name="readWriteHosts"></param>
        ///<param name="readOnlyHosts"></param>
        ///<return></return>
        public static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)
        {
            return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig
            {
                MaxWritePoolSize = readWriteHosts.Length * 5,
                MaxReadPoolSize = readOnlyHosts.Length * 5,
                AutoStart = true,
            });
        }

        ///<summary>
        ///构造函数
        ///</summary>
        ///<param name="OpenPooledRedis">是否开启缓冲池</param>
        public RedisHelper(bool OpenPooledRedis = false)
        {

            if (OpenPooledRedis)
            {
                prcm = CreateManager(new string[] { "10.12.75.126:6379" }, new string[] { "10.12.75.126:6379" });
                Redis = prcm.GetClient() as RedisClient;
            }

        }

        #region key/value存储
        ///<summary>
        ///设置缓存
        ///</summary>
        ///<typeparam name="T"></typeparam>
        ///<param name="key">缓存键</param>
        ///<param name="value">缓存值</param>
        ///<param name="timeout">过期时间(单位:秒),-1:不过期,0:默认过期时间</param>
        ///<return></return>
        public bool Set<T>(string key, T t, int timeout = 0)
        {
            if (timeout >= 0)
            {
                if (timeout > 0)
                {
                    secondsTimeOut = timeout;
                }
                Redis.Expire(key, secondsTimeOut);
            }

            return Redis.Add<T>(key, t);
        }

        ///<summary>
        ///获取
        ///</summary>
        ///<typeparam name="T"></typeparam>
        ///<param name="key"></param>
        ///<return></return>
        public T Get<T>(string key)
        {
            return Redis.Get<T>(key);
        }

        ///<summary>
        ///删除
        ///</summary>
        ///<param name="key"></param>
        ///<return></return>
        public bool Remove(string key)
        {
            return Redis.Remove(key);
        }

        ///<summary>
        ///增加(同Set方法)
        ///</summary>
        public bool Add<T>(string key, T t, int timeout = 0)
        {
            if (timeout >= 0)
            {
                if (timeout > 0)
                {
                    secondsTimeOut = timeout;
                }
                Redis.Expire(key, secondsTimeOut);
            }

            return Redis.Add<T>(key, t);
        }

        #endregion

        //释放资源
        public void Dispose()
        {
            if (Redis != null)
            {
                Redis.Dispose();
                Redis = null;
            }
            GC.Collect();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值