StackExchange.Redis 惰性连接配置
StackExchange.Redis Lazy connection configuration
我正在尝试通过 StackExchange.Redis 库实现 Redis 缓存服务。
我的 Redis 客户端:
public class RedisClient
{
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
return ConnectionMultiplexer.Connect(string.Format("{0},{1}",
ConfigurationManager.AppSettings.GetStringOrDefault("redis_masters", "someIP1:6379"),
ConfigurationManager.AppSettings.GetStringOrDefault("redis_slaves", "someIP2:6379")));
});
public static ConnectionMultiplexer GetConnection
{
get
{
return lazyConnection.Value;
}
}
}
我尝试通过这种方式建立连接:
using (var redis = RedisClient.GetConnection)
{
...
}
我得到异常:"It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. UnableToResolvePhysicalConnection on PING"
我还尝试像这样向连接添加一些配置:
ConnectionMultiplexer.Connect(string.Format("{0},{1},Ssl=false"
我得到另一个例外:"ValueFactory attempted to access the Value property of this instance."
我与 Redis 的连接在另一个库上运行良好:"StackExchange.Redis"
我只是尝试迁移到 "ServiceStack.Redis"
我错过了什么?
在配置中使用密码
ConnectionMultiplexer.Connect("localhost,password=XXXXX");
我正在尝试通过 StackExchange.Redis 库实现 Redis 缓存服务。
我的 Redis 客户端:
public class RedisClient
{
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
return ConnectionMultiplexer.Connect(string.Format("{0},{1}",
ConfigurationManager.AppSettings.GetStringOrDefault("redis_masters", "someIP1:6379"),
ConfigurationManager.AppSettings.GetStringOrDefault("redis_slaves", "someIP2:6379")));
});
public static ConnectionMultiplexer GetConnection
{
get
{
return lazyConnection.Value;
}
}
}
我尝试通过这种方式建立连接:
using (var redis = RedisClient.GetConnection)
{
...
}
我得到异常:"It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. UnableToResolvePhysicalConnection on PING"
我还尝试像这样向连接添加一些配置:
ConnectionMultiplexer.Connect(string.Format("{0},{1},Ssl=false"
我得到另一个例外:"ValueFactory attempted to access the Value property of this instance."
我与 Redis 的连接在另一个库上运行良好:"StackExchange.Redis"
我只是尝试迁移到 "ServiceStack.Redis"
我错过了什么?
在配置中使用密码
ConnectionMultiplexer.Connect("localhost,password=XXXXX");