执行 SCAN 超时

eug*_*neK 5 redis stackexchange.redis

在redis上请求密钥时获取“执行SCAN超时,inst:0,mgr:ExecuteSelect,queue:1,qu = 1,qs = 0,qc = 0,wr = 0/1,in = 0/0”

不知道为什么会这样?

public void DeleteKeys(string pattern)
{
    try
    {
        EndPoint[] endPoints = m_connectionMultiplexer.GetEndPoints();
        foreach (EndPoint endPoint in endPoints)
        {
            IServer server = m_connectionMultiplexer.GetServer(endPoint);
            RedisValue redisValue = pattern;
            IEnumerable<RedisKey> redisKeys = server.Keys(0, redisValue);
            foreach (RedisKey redisKey in redisKeys)
            {
                m_connectionMultiplexer.GetDatabase().KeyDelete(redisKey);
            }  
        }

    }
    catch (Exception ex)
    {
        m_logger.Exception(ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 2

这种特殊的状态标志组合告诉我,一个命令(具体来说:scan)被困在未发送的队列中,虽然它知道需要写入程序,但没有写入程序处于活动状态。你有完整的重现吗?这可能最好作为一个错误提出。