Har*_*ana 2 java spring redis spring-boot
我已经为 Spring 启动应用程序实现了 redis。
我应该为 application.properties 中的以下配置输入什么值?
# <!-- Maximum active connections to Redis instance -->
spring.redis.pool.max-active=8
Run Code Online (Sandbox Code Playgroud)
文档中的默认值为 8。
然后,我将其设置为 1 并使用多个命中 redis repo 的调用进行测试。虽然我预计会出现错误消息,redis 连接不可用,但我没有收到任何错误。
我在这里缺少什么?
更新问题:
正如下面提到的 mp911de,我在我的 rest 控制器方法中添加了 @Transactional 并使线程等待 10 秒。
在启用 @Transactional 的情况下使用 Spring Data Redis 时,连接从第一次 Redis 访问开始绑定,直到事务提交/回滚。
我已将 spring.redis.pool.max-active 设置为 1,然后调用另一个使用 redis 的 rest api 方法,而第一个 rest 调用仍在等待。所以在这种情况下,我想得到连接不可用异常对吗?
这取决于你打算做什么。
一个合适的值是应用程序中最大并发请求数的 50% 到 100%。Redis 连接仅在非事务模式下的 Redis 操作期间租用。
您需要commons-pool2在类路径上设置池设置才能生效。Jedis/Spring Boot 的早期版本不需要commons-pool2.
当使用带有启用的 Spring Data Redis 时@Transactional,连接从第一次 Redis 访问开始绑定,直到事务提交/回滚。
如果最大并发线程数似乎高得不合理,并且您不使用事务/阻塞操作,那么您可能需要查看生菜驱动程序集成。lettuce 只需要一个连接,但它的代价是更多的依赖,你需要自己配置RedisConnectionFactory。
| 归档时间: |
|
| 查看次数: |
5124 次 |
| 最近记录: |