概述
Redis【REmote DIctionary Server】作为当前比较流行的NoSql数据库,以其高性能,高可用的的特点,应用越来越广泛,深得各大企业和开发人员的青睐。 本文主要以一个简单的小例子,简述ServiceStack.Redis动态库在Redis方面的相关应用,仅供学习分享使用,如有不足之处,还请指正。
开发环境
相关开发环境,如下所示:
- Microsoft Visual Studio Community 2019
- ServiceStack.Redis 动态库
- Redis 6.0.9 服务器端环境搭建
ServiceStack.Redis的安装
在C#开发中,主要通过NuGet包管理器,来安装ServiceStack.Redis动态库,目前版本为5.10.4,如下所示:
示例截图
关于C#调用Redis相关示例截图,如下所示:
核心代码
关于Redis操作的核心代码,主要分两部分:Redis客户端管理类,Redis客户端操作类。
Redis客户端管理类,主要通过Redis客户端连接池【PooledRedisClientManager】创建客户端对象【IRedisClient】,如下所示:
1 using ServiceStack.Redis; 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace DemoRedis 9 { 10 /// <summary> 11 /// Redis客户端管理类 12 /// </summary> 13 public static class RedisManager 14 { 15 private static PooledRedisClientManager clientManager; 16 17 /// <summary> 18 /// 初始化信息 19 /// </summary> 20 private static void initInfo() 21 { 22 string ipaddr = System.Configuration.ConfigurationManager.AppSettings["ipaddr"]; 23 string port = System.Configuration.ConfigurationManager.AppSettings["port"]; 24 string host = string.Format("{0}:{1}", ipaddr, port); 25 initInfo(new string[] { host }, new string[] { host }); 26 } 27 28 /// <summary> 29 /// 初始化Redis客户端管理 30 /// </summary> 31 /// <param name="readWriteHosts"></param> 32 /// <param name="readOnlyHosts"></param> 33 private static void initInfo(string[] readWriteHosts, string[] readOnlyHosts) 34 { 35 clientManager = new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig 36 { 37 MaxWritePoolSize = 5, // “写”链接池链接数 38 MaxReadPoolSize = 5, // “读”链接池链接数 39 AutoStart = true, 40 }); 41 } 42 43 public static IRedisClient getRedisClient() 44 { 45 if (clientManager == null) 46 { 47 initInfo(); 48 } 49 return clientManager.GetClient(); 50 } 51 52 } 53 54 55 }