HTML5技术

C# Redis之ServiceStack - 社会主义接班人

字号+ 作者:H5之家 来源:H5之家 2017-03-03 14:00 我要评论( )

前面几篇博客基本把redis基本操作学习了下,但一些高级应用并没有写进博客,例如持久化、虚拟内存等,像这些主要是通过配置文件来解决的,运维方向可能更侧重一些,对于开发者来说,可能就想知道怎么用C#来和Redis服务器打交道,今天使用的ServiceStack就是

前面几篇博客基本把redis基本操作学习了下,但一些高级应用并没有写进博客,例如持久化、虚拟内存等,像这些主要是通过配置文件来解决的,运维方向可能更侧重一些,对于开发者来说,可能就想知道怎么用C#来和Redis服务器打交道,今天使用的ServiceStack就是用来做这事的。

一、引入ServiceStack

  通过NuGET搜索ServiceStack,安装之后会有4个dll,如下图

 

二、启动Redis服务

这里按照上一篇博客主从复制的结果搭建Redis服务器。6379的是主服务器,6380的是从服务器。图我就不截了,上篇博客中已经有了。

三、封装帮助类

关于ServiceStack的帮助类也挺多的,我在这博客贴出来的类也是从网上搜的,只是在它的基础上进行了下修改,比如配置RedisConfig.cs文件,我这里直接返回一个定值,这主要是测试,如果在开发中,应该写在配置文件中。这里我新建了一个RedisHelper的文件夹来存放这些帮助类。

1.配置文件 主要配置服务器的一些参数 读写服务器地址 最大的读写数量等

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; namespace RedisHelper { RedisConfig : ConfigurationSection { WriteServerConStr{ get { ,,); } } ReadServerConStr { get { , ); } } MaxWritePoolSize { get { return 50; } } MaxReadPoolSize { get { return 200; } } AutoStart { get { return true; } } } }

View Code

2.RedisManager管理类 主要管理维护服务端访问类

using ServiceStack.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RedisHelper { public class RedisManager { private static PooledRedisClientManager prcm; 静态构造方法,初始化链接池管理对象 RedisManager() { CreateManager(); } 创建链接池管理对象 CreateManager() { ); ); prcm = new PooledRedisClientManager(ReadServerConStr, WriteServerConStr, new RedisClientManagerConfig { MaxWritePoolSize = RedisConfig.MaxWritePoolSize, MaxReadPoolSize = RedisConfig.MaxReadPoolSize, AutoStart = RedisConfig.AutoStart, }); } [] SplitString(string strSource, string split) { return strSource.Split(split.ToArray()); } 客户端缓存操作对象 IRedisClient GetClient() { if (prcm == null) CreateManager(); return prcm.GetClient(); } } }

View Code

3.RedisBase类 字符串、List等操作类的基类

using ServiceStack.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RedisHelper { RedisBase类,是redis操作的基类,继承自IDisposable接口,主要用于释放内存 RedisBase : IDisposable { ; } private bool _disposed = false; static RedisBase() { Core = RedisManager.GetClient(); } Dispose(bool disposing) { if (!this._disposed) { if (disposing) { Core.Dispose(); Core = null; } } this._disposed = true; } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } 保存数据DB文件到硬盘 Save() { Core.Save(); } 异步保存数据DB文件到硬盘 SaveAsync() { Core.SaveAsync(); } } }

View Code

4.字符串、List、Hash等操作类

(1)string操作类

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【菜鸟玩Linux开发】通过MySQL自动同步刷新Redis - zhxilin

    【菜鸟玩Linux开发】通过MySQL自动同步刷新Redis - zhxilin

    2016-10-03 16:00

  • 【最全 干货 实例】 缓存手册(Memcached、redis、RabbitMQ) - 索宁

    【最全 干货 实例】 缓存手册(Memcached、redis、RabbitMQ) - 索宁

    2016-09-01 12:00

  • .NET基于Redis缓存实现单点登录SSO的解决方案 - Joye.Net

    .NET基于Redis缓存实现单点登录SSO的解决方案 - Joye.Net

    2016-04-20 15:00

  • Redis 的性能幻想与残酷现实 - mindwind

    Redis 的性能幻想与残酷现实 - mindwind

    2015-12-23 09:03

网友点评
p