直接貼代碼,須要引用ServiceStack.Common.dll,ServiceStack.Interfaces.dll,ServiceStack.Redis.dll,ServiceStack.Text.dllredis
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ServiceStack.Redis;緩存
namespace RedisDemo
{
/// <summary>
/// RedisManager類主要是建立連接池管理對象的
/// </summary>
public class RedisManager
{
/// <summary>
/// redis配置文件信息
/// </summary>
public static string RedisPath = ConfigurationManager.AppSettings["RedisPath"];spa
private static PooledRedisClientManager _prcm;日誌
/// <summary>
/// 靜態構造方法,初始化連接池管理對象
/// </summary>
static RedisManager()
{
CreateManager();
}對象
/// <summary>
/// 建立連接池管理對象
/// </summary>
public static void CreateManager()
{
_prcm = CreateManager(new string[] { RedisPath }, new string[] { RedisPath });
}string
/// <summary>
/// 關閉redis鏈接
/// </summary>
public void CloseCon()
{
try
{
_prcm.Dispose();
Console.WriteLine("Redis Dispose...");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}it
/// <summary>
/// 設置redis
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
public bool Set(string key, string value)
{
using (IRedisClient client = _prcm.GetClient())
{
return client.Set(key, value);
}
}io
private static PooledRedisClientManager CreateManager(string[] readWriteHosts, string[] readOnlyHosts)
{
#region
//WriteServerList:可寫的Redis連接地址。
//ReadServerList:可讀的Redis連接地址。
//MaxWritePoolSize:最大寫連接數。
//MaxReadPoolSize:最大讀連接數。
//AutoStart:自動重啓。
//LocalCacheTime:本地緩存到期時間,單位:秒。
//RecordeLog:是否記錄日誌,該設置僅用於排查redis運行時出現的問題,如redis工做正常,請關閉該項。
//RedisConfigInfo類是記錄redis鏈接信息,此信息和配置文件中的RedisConfig相呼應
#endregion
// 支持讀寫分離,均衡負載
return new PooledRedisClientManager(readWriteHosts, readOnlyHosts, new RedisClientManagerConfig
{
MaxWritePoolSize = 50, // 「寫」連接池連接數
MaxReadPoolSize = 50, // 「讀」連接池連接數
AutoStart = true,
});
}class
public string Get(string value)
{
using (IRedisClient client = _prcm.GetClient())
{
return client.Get<string>(value);
}
}cli
}}