为什么不使用ServiceStack.Redis dll ?而使用NewLife.Redis、NewLife.Core ?使用NewLife的Redis工具类

原本在项目的时候使用的是 ServiceStack.Redis dll,它是Redis官方推荐的C#客户端,性能非常优越,使用也很方便,但是我在使用这个工具的时候碰到的问题:

1、每小时只能访问Redis 6000次

关于这个错误的说明:原来ServiceStack v4版本已经逐渐商业化了,普通版每小时智能访问Redis6000次,要取消这个限制就要付费或者您也可以往回使用V3版本。

解决方案:下载破解版的,然后就正常了。

而我 换了dll。使用NewLife的

使用方法:

一、新建一个HelpRedisNL的工具类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Util.DB.Redis
{
    public class HelpRedisNL
    {
        private NewLife.Caching.Redis redisClient = NLRedis.GetClient();
        private static volatile HelpRedisNL instace = null;
        private HelpRedisNL()
        {
        }
        public static HelpRedisNL Instance
        {
            get
            {
                if (instace == null)
                    instace = new HelpRedisNL();
                return instace;
            }
        }
        public void ValuesSet(string ValueKey, T obj)
        {
            try
            {
                redisClient.Set(ValueKey, obj, -1);
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
                throw;
            }
        }
        public void ValuesSet2(string ValueKey, T obj)
        {
            try
            {
                redisClient.Set(ValueKey, obj);
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
                throw;
            }
        }
        public T Get(string ValueKey)
        {
            try
            {
                if (redisClient.ContainsKey(ValueKey))
                    return redisClient.Get(ValueKey);
                else
                    return default(T);
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
                return default(T);
            }
        }
    }

}

 

二、

using NewLife.Caching;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Util.DB.Redis
{
    public class NLRedis
    {
        /// 
        /// redis配置文件信息
        /// 
       // private static RedisConfigInfo redisConfigInfo = RedisConfigInfo.GetConfig();

        private static NewLife.Caching.Redis prcm;

        /// 
        /// 静态构造方法,初始化链接池管理对象
        /// 
        static NLRedis()
        {
            CreateManager();
        }


        /// 
        /// 创建链接池管理对象
        /// 
        private static void CreateManager()
        {
            FullRedis.Register();
            string Ip = ConfigurationManager.AppSettings["RedisPath"];
            prcm = NewLife.Caching.Redis.Create(Ip,0);
        }

        private static string[] Splitstring(string strSource, string split)
        {
            return strSource.Split(split.ToArray());
        }
        /// 
        /// 客户端缓存操作对象
        /// 
        public static NewLife.Caching.Redis GetClient()
        {
            if (prcm == null)
                CreateManager();
            return prcm;
        }
    }
}

 

你可能感兴趣的:(C#)