You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.8 KiB
C#

6 years ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using StackExchange;
using StackExchange.Redis;
namespace RedisStuy
{
/// <summary>
/// 客户端操作
/// </summary>
public static class RedisHelper
{
/// <summary>
/// 获取 Redis连接
/// (此为共享和线程安全的,可以设计成单例模式)
/// </summary>
public static IConnectionMultiplexer GetConnectionMultiplexer()
{
ConfigurationOptions options = new ConfigurationOptions();
options.DefaultDatabase = 1;
options.AllowAdmin = true;
options.EndPoints.Add("127.0.0.1", 6379);
IConnectionMultiplexer connection = ConnectionMultiplexer.Connect(options);
return connection;
}
/// <summary>
/// 获取 默认Reids服务器
/// </summary>
/// <returns></returns>
public static IServer GetDefaultRedisServer()
{
IConnectionMultiplexer connection = GetConnectionMultiplexer();
IServer redisServer = connection.GetServer(connection.GetEndPoints()[0]);
return redisServer;
}
/// <summary>
/// 获取Redis连接上的所有Redis
/// </summary>
public static List<IServer> GetAllRedisServer()
{
List<IServer> redisServers = new List<IServer>();
IConnectionMultiplexer connection = GetConnectionMultiplexer();
EndPoint[] endPoints = connection.GetEndPoints();
foreach (EndPoint endPoint in endPoints)
{
redisServers.Add(connection.GetServer(endPoint));
}
return redisServers;
}
/// <summary>
/// 获取 Redis数据库
/// </summary>
public static IDatabase GetRedisDatabase()
{
IConnectionMultiplexer connection = GetConnectionMultiplexer();
IDatabase redisDatabase = connection.GetDatabase();
return redisDatabase;
}
/// <summary>
/// 获取 Redis数据库
/// </summary>
/// <param name="databaseIndex">
/// redis中数据库编号为0-15超出则默认为0号数据库
/// </param>
public static IDatabase GetRedisDatabase(int databaseIndex)
{
//redis中数据库为0-15超出则默认为0号数据库
if (databaseIndex<0 || databaseIndex>=16)
{
databaseIndex = 0;
}
IConnectionMultiplexer connection = GetConnectionMultiplexer();
IDatabase redisDatabase = connection.GetDatabase(databaseIndex);
return redisDatabase;
}
}
}