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, );
} /// <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连接的更多相关文章
- Redis 连接问题
.NET 中使用 StackExchange.Redis 我为什么想写这个,总感觉很多介绍相应技术的博客,只是把内容从官网搬到自己的博客中,没有任何的实践,这样会给想学的人,没有任何好处,也可能我是自 ...
- Redis 连接池的问题
目录 Redis 连接池的问题 1 1. 前言 1 2.解决方法 1 前言 问题描述:Redis跑了一段时间之后,出现了以下异常. Redis Timeout ex ...
- PHP- 深入PHP、Redis连接
pconnect, phpredis中用于client连接server的api. The connection will not be closed on close or end of reques ...
- Redis 连接
Redis 连接命令主要是用于连接 redis 服务. 实例 以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: redis 127.0.0.1:6379> ...
- Python连接Redis连接配置
1. 测试连接: Python 2.7.8 (default, Oct 20 2014, 15:05:19) [GCC 4.9.1] on linux2 Type "help", ...
- 2016022613 - redis连接命令集合
redis连接命令 1.ping 用途:检查服务器是否正在运行 返回数据pong,表示服务器在运行. 2.quit 用途:关掉当前服务器连接 3.auth password 用途:服务器验证密码 没有 ...
- 红眼技术博客 » redis连接池红眼技术博客 » redis连接池
红眼技术博客 » redis连接池 redis连接池
- redis连接池操作
/** * @类描述 redis 工具 * @功能名 POJO * @author zxf * @date 2014年11月25日 */public final class RedisUtil { p ...
- java操作redis redis连接池
redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...
- 三:Redis连接池、JedisPool详解、Redisi分布式
单机模式: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; ...
随机推荐
- 详解java定时任务
在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...
- yii2权限控制rbac之rule详细讲解
作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...
- 关于sql中in 和 exists 的效率问题,in真的效率低吗
原文: http://www.cnblogs.com/AdamLee/p/5054674.html 在网上看到很多关于sql中使用in效率低的问题,于是自己做了测试来验证是否是众人说的那样. 群众: ...
- Hive安装(一)之环境配置
Hive Web Interface(HWI)简介:Hive自带了一个Web-GUI,功能不多,可用于效果展示,如果没有安装Hue的话,是个不错的选择. 由于hive-bin包中没有包含HWI的页面, ...
- MySQL 数据库的备份与恢复
一.MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制, ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- <编程珠玑>笔记 (一) 问题-算法-数据结构
1 精确描述问题 第一章强调的重点在于”精确的描述问题“,这是程序开发的第一步 -- "Problem definition" 1.1 Precise problem stat ...
- MySQL复制环境(主从/主主)部署总结性梳理
Mysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves) ...
- 如何给SVG填充和描边应用线性渐变
给SVG元素应用填充和描边有三种方法(戳这里学习SVG填充和描边的相关内容).你可以使用纯色.图案或渐变.前面两种方法我们之前已经讲过了,现在我们来讨论第三种方法——渐变. SVG提供了两种渐变——线 ...
- [LeetCode] UTF-8 Validation 编码验证
A character in UTF8 can be from 1 to 4 bytes long, subjected to the following rules: For 1-byte char ...