我在 ServiceStack里实现了 Logging 中的请求与返回,同时我想在IRequestLogger.Log() 方法中获取 IHttpRequest . IRequestContext 并不包含像IHttpRequest的信息,我们可以间接通过强制转换得到 void Log(IRequest request, object requestDto, object response, TimeSpan elapsed) { var httpReq = request as IHttpRe…
本次更新的内容有 更新引用包版本 Microsoft.AspNetCore.Hosting.Abstractions 1.1.0 Microsoft.AspNetCore.Http.Abstractions 1.1.0 Microsoft.Extensions.PlatformAbstractions 1.1.0 System.Threading.Thread 4.3.0 System.Diagnostics.Process 4.3.0 System.Security.Cryptography.…
HTTP协议 HttpWebRequest和 Socket的一点总结 相信接触过网络开发的人对HTTP.HttpWebRequest.Socket这些东西都不陌生吧.它们之间的一些介绍和关系我这里都忽略了.开我们平时开发过程中也是很少有机会接触大什么大并发这个东东,一般大并发我们都需要考虑异步和多线程以及对象池,这个我们以一个简单demo来讲解吧. 主要的调用关系图如下: 类的结构图如下: 一:这里我们依次对这些类做一个简单的说明 HttpRequestInfo: public string U…
相信接触过网络开发的人对HTTP.HttpWebRequest.Socket这些东西都不陌生吧.它们之间的一些介绍和关系我这里都忽略了.开我们平时开发过程中也是很少有机会接触大什么大并发这个东东,一般大并发我们都需要考虑异步和多线程以及对象池,这个我们以一个简单demo来讲解吧. 主要的调用关系图如下: 类的结构图如下: 一:这里我们依次对这些类做一个简单的说明 HttpRequestInfo: public string Url:http请求的url字符串,如http://www.baidu.…
序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中会对list的阻塞功能和事务的运用做二个案例,进行记录学习. Redis官方推荐的.NET驱动类库为Service.Stack.Redis.然而网上对这个类库的中文文档不是很全面与合理,这篇文章主要就对这个类库做注释展现.不足遗漏之处还望见谅,海涵. .Net使用Redis是非常方便与快捷与简单的,下面就让我展示下吧. 这里有必要说一下,如果你对Redis 中的基本对…
ServiceStack.Redis 是一个C#访问Redis的客户端,可以说可以通过它实现所有需要Redis-Cli的功能.但是今天我在主Redis 实例设置了访问密码,而在slave 上没有设置,我通过一个缓存工厂来获取连接.在redisClient实例化可以直接设置密码. /// <summary> /// 缓存客户端管理器工厂 /// </summary> public class PoolManagerFactory { private static PooledRedi…
最近在debug生产环境的问题时,发现了ServiceStack 4.0.60版本RedisClient存在一个非常严重的性能问题.在高并发下,PooledRedisClientManager.GetClient和Redis.DisposeClient会导致High CPU,并且持续非常长的时间才能自动修复.下面是Demo程序压测还原问题后,工具的分析结果. 通过分析源代码发现:原来获取RedisClient的逻辑中通过锁方式实现,并且当连接被占满后再获取连接时,需要循环遍历数组中所有的连接对象…
在用Python或dotNET redis客户端连接redis服务器的时候,当你调用客户端的SET方法后同时还想得到其返回的字符串,那么需要处理一下. 1. Redis Python redis客户端:        默认的SET方法返回的数据类型是布尔型的,即True或False,如果需要获取调用SET方法后服务器返回的原始数据,那么需要在客户端对象上调用一下set_response_callback方法即可,于是返回就是redis服务器的数据了 from redis import Redis…
需要注意的是:ServiceStack.Redis 中GetClient()方法,只能拿到Master redis中获取连接,而拿不到slave 的readonly连接.这样 slave起到了冗余备份的作用,读的功能没有发挥出来,如果并发请求太多的话,则Redis的性能会有影响. 所以,我们需要的写入和读取的时候做一个区分,写入的时候,调用client.GetClient() 来获取writeHosts的Master的redis 链接.读取,则调用client.GetReadOnlyClient…
ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我们主要谈论了ServiceStack项目建立的原动力,以及项目中的各种设计方案选择. InfoQ: 你是否认为微软对服务的实现方式有什么问题?ServiceStack又是怎样解决这些问题的呢? Demis: 有一些问题是由于微软一直以来自认为良好的框架设计的方式所造成的常见问题,另一些问题的根源是由…
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取系统里综合运用了Cassandra.memcached 新浪微博使用Redis 淘宝使用hbase,并改进研制出自己品牌的nosql产品Oceanbase mongodb被广泛用于存储非结构化数据 memcachedb是新浪网基于memcached开发的一个开源项目.给memcached分布式缓存服…
redis是文档型的,nosql中难处理的是关系. 比如人可以发博客,博客可以有分类.按照传统sql中,用户表和分类表都是主表,博客表是从表,有用户的外键和分类的外键 如果使用文档型的思考方式. 为用户A(User id=1)存储他的博客,在redis中是list或set 为分类A(Cate id=1)存储分类下的博客,在redis中是list或set 则当用户A向分类A中添加一条新博客时,需要同时向两个list(或set)中增加数据,而且理论上应该是事务的,修改的时候也需要同时修改两个. 这样…
复杂点的使用3 code first的使用,支持复杂类型 public enum PhoneType { Home, Work, Mobile, } public enum AddressType { Home, Work, Other, } public class Address { public string Line1 { get; set; } public string Line2 { get; set; } public string ZipCode { get; set; } p…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using ServiceStack.Text; namespace WeiXin.Core { public class TFSHelper { ; public class ReponseInfo { public string TFS_FILE_NAM…
在使用Redis的客户端连接工具ServiceStack.Redis要注意的问题   Redis是一个非常NB的内存级的数据库,我们可以把很多”热数据“(即读写非常多的数据)放入其中来操作,这样就减少了和关系型数据库(如SqlServer/My Sql等)之间的交互,程序的响应速度也大大提升. C#利用ServiceStack.Redis来操作Redis,它是Redis官方推荐的C#客户端,性能非常优越,使用也很方便,但是我最近在使用这个工具的时候碰到两个问题: 1.每小时只能访问Redis 6…
ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我们主要谈论了ServiceStack项目建立的原动力,以及项目中的各种设计方案选择. InfoQ: 你是否认为微软对服务的实现方式有什么问题?ServiceStack又是怎样解决这些问题的呢? Demis: 有一些问题是由于微软一直以来自认为良好的框架设计的方式所造成的常见问题,另一些问题的根源是由…
引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/stack-overflow-architecture-update-now-at-95-million-page-vi.html.从文中可以看到,该网站运用了redis作为其缓存层.而新浪微博早就已经大量使用redis.作为一个新兴的nosql数据库,redis既解决了memcached持久化的问题,又…
tatic void Main(string[] args) { );//redis服务IP和端口 #region =insert= var storeMembers = new List<string> { "jj", "lihui", "cc" }; storeMembers.ForEach(x => Redis.AddItemToList("additemtolist", x)); //注:也可直接使用…
Redis 4.0.0.0版本已经开始收费 Redis 4.0.5.0 已经完成收费 今日在更换Redis版本时 出现了ServiceStack.Redis.RedisNativeClient的方法“get_Db”没有实现 问题解决了很久 仍然没有找到问题  从Nuget获取了多次版本 3.9.71 仍然出错 , 产生这个问题的原因 就是版本问题 可能是Nuget版本关联有问题 本人手动执行 所需要版本 解决了此问题. 对应版本信息: <package id="ServiceStack.C…
什么是Redis 首先,简述一下什么是Redis. Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.从2013年5月开始,Redis的开发由Pivotal赞助.在这之前,其开发由VMware赞助.根据月度排行网站DB-Engines.com的数据显示,Redis是最流行的键值对存储数据库. 更详尽的内容参见: http://zh.wikipedia.org/wiki/Redis http://redis.io ServiceStack操作Redis public…
ServiceStack.OrmLite 谈谈我的入门级实体框架Loogn.OrmLite   每次看到有新的ORM的时候,我总会留意一下,因为自己也写过一个这样的框架,人总是有比较之心的.我可能会down下来跑一跑,也可能不会这么做,这个取决于跑起来的难易程度.我是很懒的,有XML配置或其他稍微不直观的设置的,我总是懒得看.每当笔者谈论自己的ORM的时候,总会拿EF和Dapper说事儿,EF算官方的吧,Dapper则以效率著称.但是我很奇怪为什么ServiceStack.OrmLite这么NB…
本文介绍创建一个简单的基于ServiceStack的项目. 1. 新建一个solution 2.创建完成后有4个project. ServiceModel是定义Request DTO 和 Request DTO的, ServiceInterface定义Service implementation.主要逻辑在interface里面. 1)打开ServiceModel->type,建立一个类Station. 2)在serviceModel目录下建立类GetStation. Route里面是访问这个服…
利用servicestack连接redis 引言:作为少有的.net架构下的大型网站,stackoverflow今日发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/stack-overflow-architecture-update-now-at-95-million-page-vi.html.从文中可以看到,该网站运用了redis作为其缓存层.而新浪微博早就已经大量使用redis.作为一个新兴的nosql数据库,red…
前面几篇博客基本把redis基本操作学习了下,但一些高级应用并没有写进博客,例如持久化.虚拟内存等,像这些主要是通过配置文件来解决的,运维方向可能更侧重一些,对于开发者来说,可能就想知道怎么用C#来和Redis服务器打交道,今天使用的ServiceStack就是用来做这事的. 一.引入ServiceStack 通过NuGET搜索ServiceStack,安装之后会有4个dll,如下图 二.启动Redis服务 这里按照上一篇博客主从复制的结果搭建Redis服务器.6379的是主服务器,6380的是…
前言 最近研究了下ServiceStack.OrmLite,文档中也提到了使用T4模板对数据库中已经有了表进行实体的映射,这里也顺便记录下使用的步骤和情况. 开始使用 引用T4模板 首先我们创建一个工程,然后在nuget上获取ServiceStack.OrmLite T4模板: 添加完成之后,整个工程会多了一些文件: 添加数据库连接字符串 因为模板要连接数据库进行POCO的生成,我们也修改添加连接字符串: 这里要注意的是providerName是必须要写的,要不然T4模板不能正常的识别. 修改模…
在nuget中下载ServiceStack.Redis,但是运行之后会出现一个问题: Exception: "Com.JinYiWei.Cache.RedisHelper"的类型初始值设定项引发异常.System.TypeInitializationException: "Com.JinYiWei.Cache.RedisHelper"的类型初始值设定项引发异常. ---> System.TypeLoadException: 程序集"ServiceSt…
ServiceStack是一个高性能的.NET Web Service 平台,能够简化开发高性能的REST (支持JSON,XML,JSV,HTML,MsgPack,ProtoBuf,CSV等消息格式)以及WCF SOAP风格的WebService.在内部实现上ServiceStack建立在原生的ASP.NET IHttpHandler之上,允许在.NET Framework和Mono之上. 本文针对ServiceStack框架在.NET程序中的使用做简单介绍. 1.新建.net 4.5的web…
软件环境: Win7 x64 SP1 SQL Server 2008r2 Visual Studio 2017 Professional 目标:取出示例数据库 ReportServer 的表 Roles 中的所有记录并显示. 步骤: 一.添加软件包 使用NuGet添加以下软件包: ServiceStack ServiceStack.OrmLite 二.定义表类 根据表Roles来定义对应的C#类: [Serializable] [Alias("Roles")] public class…
引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/stack-overflow-architecture-update-now-at-95-million-page-vi.html.从文中可以看到,该网站运用了redis作为其缓存层.而新浪微博早就已经大量使用redis.作为一个新兴的nosql数据库,redis既解决了memcached持久化的问题,又…
.Net使用Redis详解之ServiceStack.Redis(七)   序言 本篇从.Net如何接入Reis开始,直至.Net对Redis的各种操作,为了方便学习与做为文档的查看,我做一遍注释展现,其中会对list的阻塞功能和事务的运用做二个案例,进行记录学习. Redis官方推荐的.NET驱动类库为Service.Stack.Redis.然而网上对这个类库的中文文档不是很全面与合理,这篇文章主要就对这个类库做注释展现.不足遗漏之处还望见谅,海涵. .Net使用Redis是非常方便与快捷与简…