一,引入dll
1.ServiceStack.Common.dll
2.ServiceStack.Interfaces.dll
3.ServiceStack.Redis.dll
4.ServiceStack.Text.dll
二,修改配置文件
在你的配置文件中加入如下的代码:
<appSettings><add key="RedisPath" value="127.0.0.1:6379"/> todo:这里配置自己redis的ip地址和端口号
</appSettings>
二,用到的工具类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.Redis;
namespace RedisDemo
{/// <summary>/// RedisManager类主要是创建链接池管理对象的/// </summary>public class RedisManager{/// <summary>/// redis配置文件信息/// </summary>private static string RedisPath = System.Configuration.ConfigurationSettings.AppSettings["RedisPath"];private static PooledRedisClientManager _prcm;/// <summary>/// 静态构造方法,初始化链接池管理对象/// </summary>static RedisManager(){CreateManager();}/// <summary>/// 创建链接池管理对象/// </summary>private static void CreateManager(){_prcm = CreateManager(new string[] { RedisPath }, new string[] { RedisPath });}private static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts){//WriteServerList:可写的Redis链接地址。//ReadServerList:可读的Redis链接地址。//MaxWritePoolSize:最大写链接数。//MaxReadPoolSize:最大读链接数。//AutoStart:自动重启。//LocalCacheTime:本地缓存到期时间,单位:秒。//RecordeLog:是否记录日志,该设置仅用于排查redis运行时出现的问题,如redis工作正常,请关闭该项。//RedisConfigInfo类是记录redis连接信息,此信息和配置文件中的RedisConfig相呼应// 支持读写分离,均衡负载 return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig{MaxWritePoolSize = 5, // “写”链接池链接数 MaxReadPoolSize = 5, // “读”链接池链接数 AutoStart = true,});}private static IEnumerable<string> SplitString(string strSource, string split){return strSource.Split(split.ToArray());}/// <summary>/// 客户端缓存操作对象/// </summary>public static IRedisClient GetClient(){if (_prcm == null){CreateManager();}return _prcm.GetClient();}}
}
三,main方法执行存储操作与读取操作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.Redis;
using ServiceStack.Redis.Support;
namespace RedisDemo
{class Program{static void Main(string[] args){try{//获取Redis操作接口IRedisClient Redis = RedisManager.GetClient();//放入内存Redis.Set<string>("my_name", "小张");Redis.Set<int>("my_age", 12);//保存到硬盘Redis.Save();//释放内存Redis.Dispose();//取出数据Console.WriteLine("取出刚才存进去的数据 \r\n 我的Name:{0}; 我的Age:{1}.",Redis.Get<string>("my_name"), Redis.Get<int>("my_age"));Console.ReadKey();}catch (Exception ex){Console.WriteLine(ex.Message.ToString());Console.ReadKey();}}}
}
完活,下面是运行后的结果