如何让Redisson快速超时?

时间:2018-07-19 16:22:28

标签: configuration timeout redisson

我正在开发一个使用Redis作为缓存的应用程序。如果Redis发生故障,我希望我的应用程序尽可能继续运行。为此,我正在尝试让Redisson在Redis服务器关闭时快速使请求超时(〜100 ms)。但是,无论我设置的配置值如何,Redisson操作都会在3秒后超时,这太慢了。

要测试超时时间,请执行以下操作:

  1. 启动Redis服务器
  2. 启动我的应用程序,该应用程序通过Redisson连接到Redis
  3. 使用我的应用程序-正常工作
  4. 停止Redis服务器
  5. 继续使用我的应用程序-这非常慢!

我的代码调用RedissonClient.getBucket[String](key).get(),并调用该次。计时总是在3秒钟内数毫秒,这意味着3秒钟的超时时间。这似乎是默认设置,表明我的配置设置无效。

我将Redisson配置为:

ReplicatedServersConfig
    .setConnectTimeout(50)
    .setRetryAttempts(2)
    .setTimeout(50)

根据他们的文档,我还尝试了与我的问题无关的setPingTimeoutsetIdleConnectionTimeoutsetFailedSlaveReconnectionInterval

如果所有其他方法均失败,则可以在适当的超时时间下将缓存获取代码包装在Future中。这种方法行得通,但是我更希望避免这种黑客行为。

0 个答案:

没有答案