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, );
} /// <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 }
}));
}
}
}

Redis连接的更多相关文章

  1. Redis 连接问题

    .NET 中使用 StackExchange.Redis 我为什么想写这个,总感觉很多介绍相应技术的博客,只是把内容从官网搬到自己的博客中,没有任何的实践,这样会给想学的人,没有任何好处,也可能我是自 ...

  2. Redis 连接池的问题

      目录 Redis 连接池的问题    1 1.    前言    1 2.解决方法    1     前言 问题描述:Redis跑了一段时间之后,出现了以下异常. Redis Timeout ex ...

  3. PHP- 深入PHP、Redis连接

    pconnect, phpredis中用于client连接server的api. The connection will not be closed on close or end of reques ...

  4. Redis 连接

      Redis 连接命令主要是用于连接 redis 服务. 实例 以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: redis 127.0.0.1:6379> ...

  5. Python连接Redis连接配置

    1. 测试连接: Python 2.7.8 (default, Oct 20 2014, 15:05:19) [GCC 4.9.1] on linux2 Type "help", ...

  6. 2016022613 - redis连接命令集合

    redis连接命令 1.ping 用途:检查服务器是否正在运行 返回数据pong,表示服务器在运行. 2.quit 用途:关掉当前服务器连接 3.auth password 用途:服务器验证密码 没有 ...

  7. 红眼技术博客 » redis连接池红眼技术博客 » redis连接池

    红眼技术博客 » redis连接池 redis连接池

  8. redis连接池操作

    /** * @类描述 redis 工具 * @功能名 POJO * @author zxf * @date 2014年11月25日 */public final class RedisUtil { p ...

  9. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  10. 三:Redis连接池、JedisPool详解、Redisi分布式

    单机模式: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; ...

随机推荐

  1. WKWebView浅析

    原文链接:supermokey WKWebView 一个WKWebView对象展示交互的web内容,例如应用于app内的浏览器.你可以在你的App中使用WKWebView. 综述 Important: ...

  2. Appfuse:第一张表维护

    1. 建立表userinfo 列名 描述 UserID 主键.自增 UserName 用户名 Pwd 密码 CreateDate 创建日期 2. 在src/main/resources目录下增加文件h ...

  3. win2003 Enterprise x64 Edtion中的DCOM服务找不到WORD应用程序

    打开注册表,找到以下健值 HKEY_CLASSES_ROOT\AppID\{00020906-0000-0000-C000-000000000046} HKEY_CLASSES_ROOT\CLSID\ ...

  4. [C#6] 1-using static

    0. 目录 C#6 新增特性目录 1. 老版本的代码 1 using System; 2 3 namespace csharp6 4 { 5 internal class Program 6 { 7 ...

  5. 简易版自定义BaseServlet

    这几天在学Java Web,一直在思考Servlet重用的问题,就用java的反射机制实现自定义的简易版BaseServlet; 该方式有点像struts2 利用映射获取前端的参数.有兴趣的同学可以自 ...

  6. ab

     ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed ...

  7. asp.net mvc 之旅 —— 第五站 从源码中分析asp.net mvc 中的TempData

    在mvc的controller中,我们知道有很多的临时变量存放数据,比如说viewData,viewBag,还有一个比较特殊的tempData,关于前两个或许大家都明白, 基本上是一个东西,就是各自的 ...

  8. RabbitMq 集群搭建

        实验环境: 操作系统为 Centos 7.2 IP hostName 192.168.190.132 node132 192.168.190.139 node139 192.168.190.1 ...

  9. What's new in Windows 10 Enterprise with Microsoft Edge.(Windows 10 新功能)

    What's new in Windows 10 Enterprise with Microsoft Edge --带有Edge浏览器的Windows 10 企业版的新功能 本文摘录自公司群发邮件, ...

  10. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...