在使用Redis的客户端连接工具ServiceStack.Redis要注意的问题
Redis是一个非常NB的内存级的数据库,我们可以把很多”热数据“(即读写非常多的数据)放入其中来操作,这样就减少了和关系型数据库(如SqlServer/My Sql等)之间的交互,程序的响应速度也大大提升。
C#利用ServiceStack.Redis来操作Redis,它是Redis官方推荐的C#客户端,性能非常优越,使用也很方便,但是我最近在使用这个工具的时候碰到两个问题:
1、每小时只能访问Redis 6000次
2、用 GetById 方法获取不到对象。
第一个问题一开始本地测试的时候并没有发现,因为我们的数据量小,每小时访问Redis次数也少,但是到了服务器上发现老是报这个错误:
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的官网(https://servicestack.net/download)上看到了关于这个错误的说明:原来ServiceStack v4版本已经逐渐商业化了,普通版每小时只能访问Redis 6000次,要取消这个限制就要付费或者您也可以往回使用V3版本。
在 https://servicestack.net/download 页面的最下方。
Free Quotas
Whilst ServiceStack v4 is a commercially-supported product, we also allow free usage for small projects and evaluation purposes.
The nuget packages above include the quota's below which can be unlocked with a license key:
10 Operations in ServiceStack (i.e. Request DTOs)
10 Tables in OrmLite
20 Different Types in JSON, JSV and CSV Serializers *
20 Different Types in Redis Client Typed APIs
6000 requests per hour with the Redis Client
* These quotas are lifted in ServiceStack.Client generic service clients allowing un-restricted access when consuming ServiceStack services.
解决办法:
可以使用另外一个性能不错的StackExchange.Redis或者使用低于4的ServiceStack.Redis版本。
StackExchange.Redis下载地址:
https://github.com/StackExchange/StackExchange.Redis
低版本的ServiceStack.Redis下载地址:
https://github.com/ServiceStackV3/ServiceStackV3
在VS中使用NuGet程序包管理器控制台主机版本,安装ServiceStack.Redis版本:
PM> Install-Package ServiceStack -Version 3.9.71
第二个问题是我的一个疏忽导致的。之前声明实体类,Id字段我都是大写 I 小写d,但这次我两个字母都大写了:ID。结果我用下面这段代码怎么都获取不到想要的对象:
using(RedisClient redisClient = new RedisClient(ip, port))
{
var redisUsers = redisClient.As<User>();
User userInRedis = redisUsers.GetById();//这里的5是外面传入的参数,放在这里只是为了说明当时的情形
}
明明我已经往Redis中存入了ID为5的User,而且我把Redis中所有的User对象都取出来后也确实能找到它, 但直接通过GetById却怎么都找不到,当时百思不得其解,后来实在没辙了就试试把ID改为Id,然后重新存入再读取,结果取出来了。。。真是无语,看 来实体类的Id属性必须和方法 GetById 相对应才行。
在使用Redis的客户端连接工具ServiceStack.Redis要注意的问题的更多相关文章
- .Net使用Redis详解之ServiceStack.Redis(七) 转载https://www.cnblogs.com/knowledgesea/p/5032101.html
.Net使用Redis详解之ServiceStack.Redis(七) 序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现 ...
- .Net使用Redis详解之ServiceStack.Redis(7)
Net使用Redis详解之ServiceStack.Redis(七) 序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中 ...
- .Net使用Redis详解之ServiceStack.Redis(七)
序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中会对list的阻塞功能和事务的运用做二个案例,进行记录学习. Redi ...
- .Net使用Redis详解之ServiceStack.Redis
序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中会对list的阻塞功能和事务的运用做二个案例,进行记录学习. Redi ...
- .NET平台下Redis使用(三)【ServiceStack.Redis学习】
MVC4项目下对redis进行增删该查 Models文件下实体类: public class Book { public string BookName {get;set;} public strin ...
- ServiceStack.Redis订阅发布服务的调用(Z)
1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频 ...
- ServiceStack.Redis订阅发布服务的调用
1.Redis订阅发布介绍 Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式. 发布者和订阅者之间使用频 ...
- 『性能』ServiceStack.Redis 和 StackExchange.Redis 性能比较
背景 近来,需要用到 Redis 这类缓存技术 —— MongoDB 和 Redis 没有进行过比较. 我也懒得在这些细节上 纠结那么多 —— 按照网友给出的文章,听从网友建议,选择 Redis. R ...
- ServiceStack.Redis 使用
Redis官网提供了很多开源的C#客户端.例如,Nhiredis ,ServiceStack.Redis ,StackExchange.Redis等.其中ServiceStack.Redis应该算是比 ...
随机推荐
- linux安装sqlcmd登录sqlserver
首先从微软网站下载sqlncli安装文件,link. 因为是在内网安装,首先手工下载unixODBC2.3.0.tar.gz,下载后上传到服务器. 将下载的tar文件文件,放在同build_dm.sh ...
- 对UICollectionView的学习
UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableVie ...
- 冒泡排序(C++版)
/** Bubble Sort * * Key * * position: where swap * * iter: sub-position in each trip * */ template & ...
- Java 存储过程调用
//配置文件 private static ClientServiceConfigUtil configUtil = new ClientServiceConfigUtil("/Databa ...
- linux下ftp常用命令
1. Linux 终端连接FTP $ ftp 10.85.3.12 Name : fxm5547 Password: ftp> 如果FTP 允许匿名用户,那么用户名要输入anonymous,密码 ...
- html--整站制作
1.样式初置 body,div,ul,ol,h1,h2,h3,h4,h5,p,form,input,textarea,select{margin:0;padding:0;} li{list-style ...
- Post和get乱码
post 在web.xml中添加 <filter> <filter-name>CharacterEncodingFilter</filter-name> <f ...
- HDU 2717 Catch That Cow --- BFS
HDU 2717 题目大意:在x坐标上,农夫在n,牛在k.农夫每次可以移动到n-1, n+1, n*2的点.求最少到达k的步数. 思路:从起点开始,分别按x-1,x+1,2*x三个方向进行BFS,最先 ...
- scala言语基础学习三
map的操作 访问fangwemap元素 修改map元素 遍历map sortmap和linkmap map元素类型tuple
- php文件删除
<?php $dirname="shangchuan/uploads"; deldir($dirname); function deldir($dirname){ if(fi ...