C# redis使用之ServiceStack】的更多相关文章

需要注意的是:ServiceStack.Redis 中GetClient()方法,只能拿到Master redis中获取连接,而拿不到slave 的readonly连接.这样 slave起到了冗余备份的作用,读的功能没有发挥出来,如果并发请求太多的话,则Redis的性能会有影响. 所以,我们需要的写入和读取的时候做一个区分,写入的时候,调用client.GetClient() 来获取writeHosts的Master的redis 链接.读取,则调用client.GetReadOnlyClient…
1.设计思路 由于Redis是单线程模型,命令操作原子性,所以利用这个特性可以很容易的实现分布式锁.A用户端在Resdis写入1个KEY,其他的用户无法写入这个KEY,实现锁的效果.A用户使用完成后释放KEY,或者是KEY过了超时时间,释放KEY. 2.redis脚本 //redis-cli登陆命令 -h host -p 端口 -a 密码 redis-cli -h -a //Key:lockName Value:lockValue //NX :只在键不存在时,才对键进行设置操作.(nil) #…
  1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频道进行通信,当需要发送消息时,发布者通过publish命令将消息发送到频道上,该消息就会发送给订阅这个频道的订阅者. 图片来自于http://www.runoob.com/redis/redis-pub-sub.html 2.ServiceStack.Redis ServiceStack.Redis…
1.Redis订阅发布介绍 Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式. 发布者和订阅者之间使用频道进行通信,当需要发送消息时,发布者通过publish命令将消息发送到频道上,该消息就会发送给订阅这个频道的订阅者. 图片来自于http://www.runoob.com/redis/redis-pub-sub.html 2.ServiceStack.Redis ServiceStack.Redis…
Redis官网提供了很多开源的C#客户端.例如,Nhiredis ,ServiceStack.Redis ,StackExchange.Redis等.其中ServiceStack.Redis应该算是比较流行的.它提供了一整套从Redis数据结构都强类型对象转换的机制并将对象json序列化.所以这里只介绍ServiceStack.Redis,它也是目前我们产品中所使用的客户端. ServiceStack.Redis地址:https://github.com/ServiceStack/Service…
ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“:”结尾.代码块中定义的变量可能会被同一个域中的其他块使用.比如,定义在视图顶部的变量可以被同一视图中的代码块和代码段访问. 3.         布局 Razor通过layouts保持网页外观布局的一致性.布局模板包含基本的标签,并可以指定渲染视图内容的位置.比如 基本布局文件(_Layout.cs…
责任链模式的具体应用   1.业务场景 生产车间中使用的条码扫描,往往一把扫描枪需要扫描不同的条码来处理不同的业务逻辑,比如,扫描投入料工位条码.扫描投入料条码.扫描产出工装条码等,每种类型的条码位数是不一样,因此通过条码长度来进行业务区分. 2.初步设计 面对此场景,能够想到的最简单的设计就是使用if...else if...或者swith进行判断,因此,我们编写的代码如下 1 switch(barCode.length) 2 { 3 case 3: 4 DoSomething1(); 5 b…
提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛.首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Building Cross-Platform Web Services with ServiceStack,所以这里简要介绍一下如何使用ServiceStack快速建立一个WebService服务. 当然,在开始之前,首先要说明一下ServiceStack是个什么东西. 在国内用ServiceStac…
文件并发(日志处理)--队列--Redis+Log4Net Redis简介 Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的API 性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同). Redis目前提供五种数据类型:string(字符串),list(链表)…
阅读目录 ConnectionMultiplexer 封装 RedisHelper 通用操作类封 String类型的封装 List类型的封装 Hash类型的封装 SortedSet 类型的封装 key的管理 发布和订阅 其他 前两天朋友问我,有没有使用过StackExchange.Redis,问我要个封装类,由于之前都是使用ServiceStack.Redis,由于ServiceStack.Redis v4版本后是收费版的,所以现在也很有公司都在使用StackExchange.Redis而抛弃S…
上一篇文章里我简述了使用Keys作为Redis搜索的方式,确实感受到了社区的力量,写文章好处多.首先谢谢各位前辈的指导,我知道了拿Redis作为搜索是个错误的方向.本来这篇文章我觉得确实没必要发了,但是想想既然错了,那就将错就错,写出来给初学者一些思考吧. 本篇我将会讲讲,分词建立key索引和redis scan命令两种方式. 注意:这两种方式的搜索也不一定可行,具体场景要具体测试衡量,拿Redis做搜索要深思熟虑并且测试,甚至是要直接回避的. 另外,上篇评论也建议大家看一看,前辈们给了很多经验…
c#操作缓存例如redis比较推荐ServiceStack 在redis中运用key-value存储数据,但是遇到结构体该如何处理,是类可通过get<type>(key)获得,那struct呢, 定义结构: public struct Person{ public int id; public double lon; public double lat; } redis中设置值: Random rand=new Random(); Person info=new Person(); ;i<…
阿里云推荐的Redis服务.NET客户端是ServiceStack.Redis,但ServiceStack.Redis不支持异步,不支持.NET Core,于是尝试使用StackExchange.Redis.Microsoft.Extensions.Caching.Redis用的也是StackExchange.Redis,于是直接使用Microsoft.Extensions.Caching.Redis. 测试代码如下: var options = new RedisCacheOptions {…
前两天朋友问我,有没有使用过StackExchange.Redis,问我要个封装类,由于之前都是使用ServiceStack.Redis,由于ServiceStack.Redis v4版本后是收费版的,所以现在也很有公司都在使用StackExchange.Redis而抛弃ServiceStack.Redis了.其实个人觉得,两个驱动都不错,只是由于ServiceStack.Redis收费导致目前很多公司都是基于V3版本的使用,也有人说V3版本有很多Bug,没有维护和升级,不过至少目前我是没发现B…
上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享".这篇文章将会介绍如何使用Redis,下一篇在此基础上实现Session. 这里特别说明一下,其实没有必要使用Redis来解决Session共享.Asp.net提供了StateServer模式来共享Session,这里重复造轮子的目的1:熟悉Redis的基本知识和使用 2.学习和巩固Session的实现原理. 3.学习Redis应用场景 阅读目录 Re…
上一篇讲述了安装redis<Redis总结(一)Redis安装>,同时也大致介绍了redis的优势和应用场景.本篇着重讲解.NET中如何使用redis和C#. Redis官网提供了很多开源的C#客户端.例如,Nhiredis ,ServiceStack.Redis ,StackExchange.Redis等.其中ServiceStack.Redis应该算是比较流行的.它提供了一整套从Redis数据结构都强类型对象转换的机制并将对象json序列化.所以这里只介绍ServiceStack.Redi…
Redis简介 Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景.Redis纯粹为应用而产生,它是一个高性能的key-value数据库,并且提供了多种语言的API 性能测试结果表示SET操作每秒钟可达110000次,GET操作每秒81000次(当然不同的服务器配置性能不同). Redis目前提供五种数据类型:string(字符串),list(链表), Hash(哈希),set(集合)及zset(sorted…
下载地址: https://github.com/mythz/ServiceStack.Redis 添加dll引用: using ServiceStack.Common.Extensions;using ServiceStack.Redis;using ServiceStack.Redis.Generic;using ServiceStack.Text;using ServiceStack.Redis.Support; 声明一个客户端对象:protected RedisClient Redis…
Redis for Windows(C#缓存)安装和使用 前言 前段时间写过两篇简单的有关Memcached缓存的相关文章,当然了只是入门的如何使用而已.最近这两天又发现了Redis这个神奇的东西,之前肯定看到过,由于是小菜,还真心没多多注意它是干什么的,不料最近发现原来它也是缓存神器呀,于是自己就来简单的入门学习. Asp.Net中使用Couchbase——Memcached缓存入门篇http://www.cnblogs.com/aehyok/p/3436721.html Asp.Net中使用…
  注:关于如何在windows,linux下配置redis,详见这篇文章:)          Discuz!NT中的Redis架构设计 目前网上有一些链接Redis的C#客户端工具,这里介绍其中也是目前我们企业版产品中所使用的ServiceStackRedis, 链接地址: https://github.com/mythz/ServiceStack.Redis 下面该链接中的源码包或dll文件,引入到项目中,并添加如下名空间引用(仅限本文): using ServiceStack.Commo…
在之前的Discuz!NT缓存的架构方案中,曾说过Discuz!NT采用了两级缓存方式,即本地缓存+memcached方式.在近半年多的实际运行环境下,该方案经受住了检验.现在为了提供多样式的解决方案,我在企业版里引入了Redis这个目前炙手可热的缓存架构产品,即将memcached与Redis作为可选插件方式来提供了最终用户,尽管目前测试的结果两者的差异不是很大(毫秒级),但我想多一种选择对用户来说也是好的. 闲话不多说了,开始今天的正文吧.         熟悉我们产品的开发者都知道,我们的…
注:关于如何在windows,linux下配置redis,详见这篇文章:) 目前网上有一些链接Redis的C#客户端工具,这里介绍其中也是目前我们企业版产品中所使用的ServiceStackRedis, 链接地址: https://github.com/mythz/ServiceStack.Redis 下面该链接中的源码包或dll文件,引入到项目中,并添加如下名空间引用(仅限本文): using ServiceStack.Common.Extensions; using ServiceStack…
C#中使用redis 首先打开Visual Studio建立一个简单的控制台应用程序,我这里暂时使用的VS2013的版本. 然后通过Nuget进行安装Redis常用组件ServiceStack.Redis. //代码尝试 ); static void Main(string[] args) { client.Set<string>("test", "我是设置键值对"); string str = client.Get<string>(&quo…
最近一段时间在研究redis.  各种不懂, 各种问题.也看了N多的资料. 最终参照着  张占岭 的博客  http://www.cnblogs.com/lori/p/3435483.html   写了一套redis与entityframework结合的操作类. 如有什么不正确的地方,请指明. using ServiceStack.Redis; using ServiceStack.Redis.Generic; using System; using System.Collections.Gen…
最近在项目中使用了redis来存储已经下载过的URL,项目中用的是ServiceStack来操作Redis,一开始ServiceStack的版本用的是最新的,后来发现ServiceStack已经商业化了,非商业版本每个小时只能操作6000次Redis,后来把ServiceStack换成了V3版本. 在项目中用到了redis的Hash集合,但是ServiceStack封装的使用起来不方便,于是就自己封装了一个dll,利用的ServiceStack的pool来动态创建IRedisClient实例,创…
上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享".这篇文章将会介绍如何使用Redis,下一篇在此基础上实现Session. 这里特别说明一下,其实没有必要使用Redis来解决Session共享.Asp.net提供了StateServer模式来共享Session,这里重复造轮子的目的1:熟悉Redis的基本知识和使用 2.学习和巩固Session的实现原理. 3.学习Redis应用场景 阅读目录 Re…
Redis:在windows环境安装Redis 第一步: 下载windows版本的Redis:https://github.com/MSOpenTech/Redis. 第二步: 在命令行执行:D:\redis-2.6\redis-server.exe. 第三步: 这里有教程:https://github.com/ServiceStack/ServiceStack.Redis. C#版本的客户端类库 Write.Read和Remove测试 代码下载:http://yunpan.cn/QtNrcGx…
第一部分:为什么我的项目中要使用Redis 我知道有些地方没说到位,希望大神们提出来,我会吸取教训,大家共同进步! 注册时邮件激活的部分使用Redis 发送邮件时使用Redis的消息队列,减轻网站压力. 使用Lucene.Net在进行分词时使用Redis消息队列和多线程来避免界面卡死等性能问题. 请大家先思考一个问题:这个问题在大并发.高负载的网站中必须考虑!大家思考如何让速度更快. 三种方法:(1)数据库(2)页面静态化(3)Redis.Memcached 第二部分:Redis是什么 概述:r…
Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官网只提供了linux的安装包,我win10 的系统,在github上下载的windows安装包 3.0.504最新稳定版的 github地址:https://github.com/MicrosoftArchive/redis/releases   官网下载地址:https://redis.io/do…
一.引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己写了两个工具类,但是这两个工具类,没有提供一致的接口,是为了使用的独立性.测试已经完毕,可以正常访问Windows和Linux版本上的Redis服务,各种操作也没问题.今天就把主要代码贴出来,因为有一部分是需要配置文件的,我自己独立写了一套配置系统,这套配置系统就不贴出来,大家可以根据自己的理解来写这个部分的内容,好了,开始我们今天的写作吧. 二.简介 我写了两个工具…