|
@@ -1,74 +0,0 @@
|
|
|
-
|
|
|
-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();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|