ServiceStack.Redis 无法连接 sPort
ServiceStack.Redis unable to connect sPort
几天来我一直在努力弄清楚为什么我会收到 http://i.imgur.com/cfCBWRS.png
这样的异常
public virtual bool CreateOrUpdateValueById<T>(TQuery query, TResult value)
{
using (var redisClient = Connection.RedisManager.GetClient())
{
var redis = redisClient.As<TResult>();
var key = query.GetKeyWithId();
redis.SetEntry(key, value);
return true;
}
}
它在数百个项目的循环中运行。
foreach (var playlistItem in playlistItems)
{
var query = new PlaylistItemsQuery(playlistItem.Id, playlistItem.PlaylistId);
_playlistItemsQueryHandler.CreateOrUpdateValueById<PlaylistItemDto>(query, playlistItem);
}
对于任何 get 查询也会发生
public virtual IEnumerable<TResult> GetAllValues(TQuery query)
{
using (var redisClient = Connection.RedisManager.GetReadOnlyClient()
{
var keys = redisClient.ScanAllKeys(query.GetKeyWithAllIds()).ToList();
return redisClient.GetValues<TResult>(keys);
}
}
我使用单例 class 用于 redispool
public static IRedisClientsManager RedisManager { get; } = new PooledRedisClientManager
{
ConnectTimeout = 60000
};
我在不受官方支持的本地主机 windows 上托管 redis,真的是这样吗?
错误消息表明Redis 客户端无法与远程Redis 服务器建立TCP 连接。如果您使用的不是 ServiceStack.Redis v4 的许可版本,那么这可能意味着您已经超出了 ServiceStack.Redis Free Quota Limits.
否则请确认您可以从 redis-cli.exe
连接到它,如果不能,您可以尝试重新启动 redis-server。
几天来我一直在努力弄清楚为什么我会收到 http://i.imgur.com/cfCBWRS.png
这样的异常public virtual bool CreateOrUpdateValueById<T>(TQuery query, TResult value)
{
using (var redisClient = Connection.RedisManager.GetClient())
{
var redis = redisClient.As<TResult>();
var key = query.GetKeyWithId();
redis.SetEntry(key, value);
return true;
}
}
它在数百个项目的循环中运行。
foreach (var playlistItem in playlistItems)
{
var query = new PlaylistItemsQuery(playlistItem.Id, playlistItem.PlaylistId);
_playlistItemsQueryHandler.CreateOrUpdateValueById<PlaylistItemDto>(query, playlistItem);
}
对于任何 get 查询也会发生
public virtual IEnumerable<TResult> GetAllValues(TQuery query)
{
using (var redisClient = Connection.RedisManager.GetReadOnlyClient()
{
var keys = redisClient.ScanAllKeys(query.GetKeyWithAllIds()).ToList();
return redisClient.GetValues<TResult>(keys);
}
}
我使用单例 class 用于 redispool
public static IRedisClientsManager RedisManager { get; } = new PooledRedisClientManager
{
ConnectTimeout = 60000
};
我在不受官方支持的本地主机 windows 上托管 redis,真的是这样吗?
错误消息表明Redis 客户端无法与远程Redis 服务器建立TCP 连接。如果您使用的不是 ServiceStack.Redis v4 的许可版本,那么这可能意味着您已经超出了 ServiceStack.Redis Free Quota Limits.
否则请确认您可以从 redis-cli.exe
连接到它,如果不能,您可以尝试重新启动 redis-server。