有没有办法在 Java 中使用 Redis 响应式设置超时?

我用来ReactiveRedisConnection配置与本地 redis 容器的连接。

但将来应用程序将托管在 Web 服务器上,而 Redis 将托管在不同的服务器上。

是否有任何选项可以设置请求超时?


至尊宝的传说
浏览 106回答 2
2回答

慕尼黑5688855

经过一些研究和测试,我发现必须在请求查询上设置超时。所以在配置类上:@Beanpublic ReactiveRedisTemplate<String, String> reactiveRedisTemplateString(ReactiveRedisConnectionFactory connectionFactory) {&nbsp; &nbsp; return new ReactiveRedisTemplate<>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (connectionFactory, RedisSerializationContext.string());}并在服务中:@Autowiredprivate ReactiveRedisTemplate<String, Response> repository;public Mono<String> execute(String value){&nbsp; &nbsp; &nbsp; &nbsp; return repository.opsForHash().entries("KEY_TO_SEARCH")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .timeout(Duration.ofMillis(TIMEOUT))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.toMap("CODE_HERE");编辑:感谢所有在这里提供帮助的人。

白衣染霜花

可以在反应式连接实现上配置超时。如果您使用 Lettuce 进行 Redis 连接,则可以执行以下操作。@Beanpublic ReactiveRedisConnectionFactory reactiveRedisConnectionFactory() {&nbsp; &nbsp; return new LettuceConnectionFactory(new RedisStandaloneConfiguration(), LettuceClientConfiguration.builder().commandTimeout(Duration.ofSeconds(2)).build());}然后使用connectionFactory来创建ReactiveRedisTemplate.@Beanpublic ReactiveRedisTemplate<String, String> reactiveRedisTemplateString&nbsp; (ReactiveRedisConnectionFactory connectionFactory) {&nbsp; &nbsp; return new ReactiveRedisTemplate<>(connectionFactory, RedisSerializationContext.string());}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java