ServiceStack.Redis无法连接sPort

时间:2015-09-22 20:03:43

标签: c# redis servicestack nosql

我已经尝试了几天了解为什么我会收到例如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);
}

也适用于任何获取查询

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

我使用redtonpool的单例类

public static IRedisClientsManager RedisManager { get; } = new PooledRedisClientManager
{
    ConnectTimeout = 60000
};

我在localhost windows上托管redis,这是不是官方支持的,这真的是这样吗?

1 个答案:

答案 0 :(得分:1)

错误消息表明Redis客户端无法与远程Redis服务器建立TCP连接。如果您没有使用ServiceStack.Redis v4的许可版本,则可能意味着您已超出ServiceStack.Redis Free Quota Limits

否则确认您可以从redis-cli.exe连接到它,如果不能,您可以尝试重新启动redis-server。