| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- 
 
- using Newtonsoft.Json;
 
- using StackExchange.Redis;
 
- using System;
 
- using System.Collections.Concurrent;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Linq;
 
- using System.Reflection;
 
- using System.Text;
 
- namespace OASystem.Infrastructure.Tools
 
- {
 
-     public class RedisHelper : IDisposable
 
-     {
 
-         //连接字符串
 
-         private string _connectionString;
 
-         //实例名称
 
-         private string _instanceName;
 
-         //默认数据库
 
-         private int _defaultDB;
 
-         private ConcurrentDictionary<string, ConnectionMultiplexer> _connections;
 
-         public RedisHelper(string connectionString, string instanceName, int defaultDB = 0)
 
-         {
 
-             _connectionString = connectionString;
 
-             _instanceName = instanceName;
 
-             _defaultDB = defaultDB;
 
-             _connections = new ConcurrentDictionary<string, ConnectionMultiplexer>();
 
-         }
 
-         /// <summary>
 
-         /// 获取ConnectionMultiplexer
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         private ConnectionMultiplexer GetConnect()
 
-         {
 
-             return _connections.GetOrAdd(_instanceName, p => ConnectionMultiplexer.Connect(_connectionString));
 
-         }
 
-         /// <summary>
 
-         /// 获取数据库
 
-         /// </summary>
 
-         /// <param name="configName"></param>
 
-         /// <param name="db">默认为0:优先代码的db配置,其次config中的配置</param>
 
-         /// <returns></returns>
 
-         public IDatabase GetDatabase(RedisEnum redisEnum)
 
-         {
 
-             return GetConnect().GetDatabase((int)redisEnum);
 
-         }
 
-         public IServer GetServer(string configName = null, int endPointsIndex = 0)
 
-         {
 
-             var confOption = ConfigurationOptions.Parse(_connectionString);
 
-             return GetConnect().GetServer(confOption.EndPoints[endPointsIndex]);
 
-         }
 
-         public ISubscriber GetSubscriber(string configName = null)
 
-         {
 
-             return GetConnect().GetSubscriber();
 
-         }
 
-         public void Dispose()
 
-         {
 
-             if (_connections != null && _connections.Count > 0)
 
-             {
 
-                 foreach (var item in _connections.Values)
 
-                 {
 
-                     item.Close();
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |