Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis 用于获取和设置/刷新操作的绝地池配置_Redis_Jedis - Fatal编程技术网

Redis 用于获取和设置/刷新操作的绝地池配置

Redis 用于获取和设置/刷新操作的绝地池配置,redis,jedis,Redis,Jedis,我是redis新手,在我的应用程序中使用Jedis客户端。我已经研究了几条线索,没有找到结论性的答案 我有两个问题需要澄清 对于我的制作用途,我想为绝地武士的get操作和set操作设置单独的超时时间。对于所有设置操作,我想将超时设置为2000ms,对于get 100ms。我已经实现了以下配置 JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxIdle(30); poolConfig.setMinIdle(10

我是redis新手,在我的应用程序中使用Jedis客户端。我已经研究了几条线索,没有找到结论性的答案

我有两个问题需要澄清

  • 对于我的制作用途,我想为绝地武士的get操作和set操作设置单独的超时时间。对于所有设置操作,我想将超时设置为2000ms,对于get 100ms。我已经实现了以下配置

    JedisPoolConfig poolConfig = new JedisPoolConfig();
    poolConfig.setMaxIdle(30);
    poolConfig.setMinIdle(10);
    poolConfig.setMaxWaitMillis(2000);
    jedisPool = new JedisPool(poolConfig, RedisDBUrl, port, 100);
    
    让我知道,如果上述配置将做的工作。我将读取超时设置为100ms,最大等待设置为2000ms

  • 让我知道我的理解是否正确

    有时我会收到JedisConnectionException:java.net.SocketTimeoutException:读取超时或有时连接超时

    在这里,当我的应用程序无法在配置的时间内连接到redis时,会引发连接超时

    其次,当应用程序连接到redis,但操作(get/set)需要时间或出于某种原因时,读取超时就会出现

    最后,如何为读取超时和连接超时配置超时


  • 在经过多次的命中测试和测试后,你不能为绝地武士的“获取”和“设置”操作设置单独的超时时间。 可能您可以使用一些外部库来实现(比如google的SimpleTimeLimiter)

    与我观察到的情况相比,当绝地武士试图连接到redis服务器时,连接超时会发生。在我的情况下,我的系统中的redis服务器延迟约为120-125ms,因此如果我在绝地武士构造函数中设置超时=100ms,我会得到“连接超时”

    然而,当您连接到redis服务器时,会出现“读取超时”,但redis操作不会在指定的时间内返回。为了测试此场景,我在构造函数中将超时设置为180ms,并尝试运行flushall操作(需要很长时间),这里我得到了读取超时

    仍然不确定poolConfig.setMaxWaitMillis()的意义。

    “poolConfig.setMaxWaitMillis()”是从jedispool获取资源的最长等待时间,之后“jedispool.getResource()”将出现“连接超时”异常。