gpt4 book ai didi

java - Spring Boot 项目的 Redis max-active 配置值

转载 作者:可可西里 更新时间:2023-11-01 11:04:25 25 4
gpt4 key购买 nike

我已经为 Spring boot 应用程序实现了 redis。

我应该为 application.properties 中的以下配置输入什么值?

# <!-- Maximum active connections to Redis instance -->
spring.redis.pool.max-active=8

文档中默认为 8。

然后,我将其设置为 1 并使用多次调用来测试 redis 存储库。虽然我预计会出现错误提示,redis 连接不可用,但我没有收到任何错误。

我在这里错过了什么?

更新问题:

正如下面提到的 mp911de,我在我的 rest Controller 方法中添加了 @Transactional 并让线程等待 10 秒。

When using Spring Data Redis with enabled @Transactional, the connection is bound from the first Redis access until the transaction is committed/rolled back.

我已将 spring.redis.pool.max-active 设置为 1,然后调用另一个使用 redis 的 rest api 方法,而第一个 rest 调用仍在等待。所以在这种情况下,我应该得到连接不可用异常吧?

最佳答案

简而言之

这取决于您打算做什么。

解释

一个好的值是应用程序中最大并发请求数的 50% 到 100%。 Redis 连接仅在非事务模式下的 Redis 操作期间租用。

您需要在您的类路径上有 commons-pool2 池设置才能生效。早期版本的 Jedis/Spring Boot 不需要 commons-pool2

在启用 @Transactional 的情况下使用 Spring Data Redis 时,连接从第一次 Redis 访问开始绑定(bind),直到提交/回滚事务。

如果最大并发线程的数量似乎高得不合理并且您不使用事务/阻塞操作,那么您可能需要查看 lettuce driver一体化。 lettuce 只需要一个连接,但它是以更多依赖为代价的,你需要自己配置 RedisConnectionFactory

关于java - Spring Boot 项目的 Redis max-active 配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38341618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com