luobo2ni 发表于 2017-12-20 20:49:19

请叫我小冯哥哥

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using ServiceStack.Redis;  

  

namespace RedisDemo  
{
/// <summary>  /// RedisManager类主要是创建链接池管理对象的
  /// </summary>

  public>  {
  /// <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();
  }
  

  }
  
}
页: [1]
查看完整版本: 请叫我小冯哥哥