【问题标题】:ServiceStack.Redis unable to connect sPortServiceStack.Redis 无法连接 sPort
【发布时间】:2015-12-19 23:02:51
【问题描述】:

我这几天一直在尝试弄清楚为什么我会收到 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);
    }
 }

我为 redispool 使用单例类

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

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

【问题讨论】:

    标签: c# redis servicestack nosql


    【解决方案1】:

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

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

    【讨论】:

    • 我没有提到前几千个查询通过就好了。重新启动 redit 服务没有帮助。
    • 我可以从 redis-cli.exe 连接,之后甚至可以运行 redis-benchmark.exe。
    • @ArturKokinArturK 该错误表示客户端无法与服务器建立 TCP 连接,这可能是由于ScanAllKeys 产生的负载造成的,请参阅 v4.0.46 发行说明,其中 explains how SCAN works 和LUA 替代方案。你可以试试increasing the default Auto Retry limit,也可以打印Dump of RedisStats,它可以提供健康统计数据
    • 我放弃并开始使用 StackExange.Redis 库 :)
    • @aMerkuri 不用担心,我已经仔细研究过了,您可能已经超出了免费配额限制,因为流式 ScanAllKeys 会在后台生成无限 API 调用来遍历整个键集。 v4.0.47+(现在在 MyGet 上)将有一个更明确的异常原因。
    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2014-03-01
    • 2019-12-07
    • 2020-04-06
    相关资源
    最近更新 更多