问题描述

redis 是一种基于内存,性能高效的 NoSQL 数据库,性能高主要就体现在数据交互耗时较短,能够段时快速的对用户的请求做出反应,所以在业务比较复杂或交互量需求大时,必然会超过 6000次/h,同时你引用的动态库 ServiceStack.redis.dll 版本在 v4 及以上时,就会出现如下报错:

  The free-quota limit on ‘6000 Redis requests per hour‘ has been reached. Please see https://servicestack.net to upgrade to a commercial license. 

若想突破次数限制,则需要降低 ServiceStack.redis.dll 版本。因为 ServiceStack.Redis.dll 这个官方 Redis 访问组件从 4.0 版本后开始商业化了。v3 的最后一个版本是 v3.9.71。

  

仅升级动态库 ServiceStsck.redis.dll 报错解决(’get_Db’)

  报错详情:’Method ‘get_Db’ in type ‘ServiceStack.Redis.RedisNativeClient’ from assembly ‘ServiceStack.Redis, Version=3.9.71.0, Culture=neutral, PublicKeyToken=null’ does not have an implementation.’

  问题原因与解决方法:

    主要是因为在高版本中,ServiceStsck.redis.dll 已将对 ServiceStack.Common.dll 的依赖去除,而在老版本中仍然有依赖。

    因此在版本将至 v3.9.71 后,需要额外引用一个动态库:ServiceStack.Common.dll,版本同样选择 v3.9.71

 新旧版本的写法区别

  主要就是实例化 RedisClient 时的区别。

1     //新版写法 v4及以后
2     var redisEndpoint = new RedisEndpoint { Host = "", Password = "", Port = Convert.ToInt32("3679"), Db = 0 };
3     using (RedisClient redisClient = new RedisClient(redisEndpoint))
4     {
5         var strlist = redisClient.GetHashValues("hashId");//新老版本语法相同
6         var strlist2 = redisClient.GetValuesFromHash("hashId",new string[] { "key1","key2" });//新老版本语法相同
7     }
1     //旧版写法 v4之前
2     using (RedisClient redisClient = new RedisClient("redishost", Convert.ToInt32("redisport"), "redispass", 0))
3     {
4         var strlist = redisClient.GetHashValues("hashId");//新老版本语法相同
5         var strlist2 = redisClient.GetValuesFromHash("hashId",new string[] { "key1","key2" });//新老版本语法相同
6     }

 

原文地址:http://www.cnblogs.com/czzj/p/16792384.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性