zoukankan      html  css  js  c++  java
  • Redis连接

    using System;
    using System.Configuration;
    using StackExchange.Redis;
    
    namespace Redis
    {
        public sealed class RedisDbContext
        {
            /// <summary>
            /// Redis连接器
            /// </summary>
            private static Lazy<ConnectionMultiplexer> _lazyConnection;
    
            /// <summary>
            /// Redis单例.
            /// </summary>
            /// <returns></returns>
            public static IDatabase Instance()
            {
                return Instance(null);
            }
    
            /// <summary>
            /// Redis单例.
            /// </summary>
            /// <param name="connectionString">Redis服务器连接地址.</param>
            /// <returns></returns>
            public static IDatabase Instance(string connectionString)
            {
                return Instance(connectionString, 0);
            }
    
            /// <summary>
            ///  Redis单例.
            /// </summary>
            /// <param name="connectionString">Redis服务器连接地址.</param>
            /// <param name="db">Redis服务器数据库索引(0-10).</param>
            /// <returns></returns>
            /// <exception cref="System.ArgumentNullException">Redis服务器单例过程失败</exception>
            public static IDatabase Instance(string connectionString, int db)
            {
                if (_lazyConnection == null)
                {
                    lock (typeof(RedisDbContext))
                    {
                        if (_lazyConnection == null)
                        {
                            if (string.IsNullOrWhiteSpace(connectionString))
                            {
                                InitRedis();
                            }
                            else
                            {
                                InitRedis(connectionString);
                            }
                        }
                    }
                }
    
                if (_lazyConnection == null)
                {
                    throw new Exception("Redis服务器连接失败");
                }
    
                return _lazyConnection.Value.GetDatabase(db);
            }
    
            /// <summary>
            /// 初始化Redis连接器.
            /// </summary>
            private static void InitRedis()
            {
                InitRedis(ConfigurationManager.AppSettings["RedisConnection"]);
            }
    
            /// <summary>
            /// 初始化Redis连接器.
            /// </summary>
            /// <param name="connectionString">Redis服务器连接地址.</param>
            /// <exception cref="System.ArgumentNullException">Redis服务器连接地址ConnectionString未配置</exception>
            private static void InitRedis(string connectionString)
            {
                if (string.IsNullOrEmpty(connectionString))
                {
                    throw new ArgumentNullException("Redis服务器地址未配置");
                }
    
                _lazyConnection = new Lazy<ConnectionMultiplexer>(
                    () => ConnectionMultiplexer.Connect(new ConfigurationOptions()
                    {
                        AbortOnConnectFail = false,
                        EndPoints = { connectionString }
                    }));
            }
        }
    }
  • 相关阅读:
    Salesforce 大量数据部署的最佳实践
    Salesforce 数据备份和恢复小知识
    Salesforce 导入导出数据简介
    GDPR 和个人信息保护的小知识
    代码审查要点简介
    Salesforce 外部对象
    Python scipy.sparse.csr_matrix()[csc_matrix()]
    Deep Compression
    Pascal voc api
    Python内置模块-xml模块
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/6076558.html
Copyright © 2011-2022 走看看