Redis 用于获取和设置/刷新操作的绝地池配置
我是redis新手,在我的应用程序中使用Jedis客户端。我已经研究了几条线索,没有找到结论性的答案 我有两个问题需要澄清Redis 用于获取和设置/刷新操作的绝地池配置,redis,jedis,Redis,Jedis,我是redis新手,在我的应用程序中使用Jedis客户端。我已经研究了几条线索,没有找到结论性的答案 我有两个问题需要澄清 对于我的制作用途,我想为绝地武士的get操作和set操作设置单独的超时时间。对于所有设置操作,我想将超时设置为2000ms,对于get 100ms。我已经实现了以下配置 JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxIdle(30); poolConfig.setMinIdle(10
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(30);
poolConfig.setMinIdle(10);
poolConfig.setMaxWaitMillis(2000);
jedisPool = new JedisPool(poolConfig, RedisDBUrl, port, 100);
让我知道,如果上述配置将做的工作。我将读取超时设置为100ms,最大等待设置为2000ms在经过多次的命中测试和测试后,你不能为绝地武士的“获取”和“设置”操作设置单独的超时时间。 可能您可以使用一些外部库来实现(比如google的SimpleTimeLimiter) 与我观察到的情况相比,当绝地武士试图连接到redis服务器时,连接超时会发生。在我的情况下,我的系统中的redis服务器延迟约为120-125ms,因此如果我在绝地武士构造函数中设置超时=100ms,我会得到“连接超时” 然而,当您连接到redis服务器时,会出现“读取超时”,但redis操作不会在指定的时间内返回。为了测试此场景,我在构造函数中将超时设置为180ms,并尝试运行flushall操作(需要很长时间),这里我得到了读取超时 仍然不确定poolConfig.setMaxWaitMillis()的意义。“poolConfig.setMaxWaitMillis()”是从jedispool获取资源的最长等待时间,之后“jedispool.getResource()”将出现“连接超时”异常。