解决ASP.NET中Redis 每小时6000次访问请求的问题

时间:2023-03-09 02:47:27
解决ASP.NET中Redis 每小时6000次访问请求的问题

原文:解决ASP.NET中Redis 每小时6000次访问请求的问题

虽然ServiceStack v4是商业支持的产品,但我们也允许免费使用小型项目和评估目的。
上面的NuGet包中包含可以使用许可证密钥解锁的配额:

  • 10 ServiceStack中的操作(即请求DTO)
  • OrmLite中的10个数据库表
  • PocoDynamo中的10个DynamoDB表
  • Redis客户端类型API中的20种不同类型
  • 使用Redis客户端每小时6000个请求

C#利用ServiceStack.Redis来操作Redis,它是Redis官方推荐的C#客户端,性能非常优越,使用也很方便,但是有如下的问题:
每小时只能访问Redis 6000次
The free-quota limit on ‘6000 Redis requests per hour‘ has been reached. Please see https://servicestack.net to upgrade to a commercial license.
解决ASP.NET中Redis 每小时6000次访问请求的问题

经过详细查询在ServiceStack的官网(https://servicestack.net/download)上看到了关于这个错误的说明:原来ServiceStack v4版本已经逐渐商业化了,普通版每小时只能访问Redis 6000次,要取消这个限制就要付费或者您也可以往回使用V3版本。
解决方案如下:
解决办法:

可以使用另外一个性能不错的StackExchange.Redis或者使用低于4的ServiceStack.Redis版本。

StackExchange.Redis下载地址:

https://github.com/StackExchange/StackExchange.Redis

低版本的ServiceStack.Redis下载地址:

https://github.com/ServiceStackV3/ServiceStackV3

这里由于我个人测试使用,变降低了版本。在vs中操作如下:
1.菜单栏-》工具-》NgGet工具包管理器-》程序包管理器控制台。

解决ASP.NET中Redis 每小时6000次访问请求的问题

2.在下方出现的命令行中输入如下命令:
Install-Package ServiceStack.Redis -Version 3.0

解决ASP.NET中Redis 每小时6000次访问请求的问题

解决ASP.NET中Redis 每小时6000次访问请求的问题

3.命令行中显示成功降低版本。
然后进行测试,详细的搭建方法请见上两篇文章

http://blog.csdn.net/u010533180/article/details/52784696
http://blog.csdn.net/u010533180/article/details/52805792

降低版本后可能出现如下的问题:
解决ASP.NET中Redis 每小时6000次访问请求的问题

修改的代码如下:

        /// <summary>
/// 3.5以下版本的配置
/// </summary>
private RedisClient RedisSessionClient
{
get
{
if (!string.IsNullOrEmpty(redisCfg.RedisPassword))
{
return new RedisClient( redisCfg.RedisServer, redisCfg.RedisPort) { Password=redisCfg.RedisPassword};
}
return new RedisClient(redisCfg.RedisServer, redisCfg.RedisPort);
}
}

经过测试的效果图如下:
解决ASP.NET中Redis 每小时6000次访问请求的问题

解决ASP.NET中Redis 每小时6000次访问请求的问题

解决ASP.NET中Redis 每小时6000次访问请求的问题

解决ASP.NET中Redis 每小时6000次访问请求的问题

上几篇文章4.5 版本的项目下载地址为:
链接: http://pan.baidu.com/s/1pKR3VrP 密码: 3anx

自己项目3.0版本的下载地址为:
链接: http://pan.baidu.com/s/1mhZH5Ss 密码: yvkk