spring.redis.pool.max-wait 与 spring.redis.timeout 
时间: 2023-03-19 21:23:51 浏览: 95
`spring.redis.pool.max-wait` 和 `spring.redis.timeout` 是两个不同的配置属性,用于不同的目的。
`spring.redis.pool.max-wait` 是 Redis 连接池中连接的最大等待时间。当 Redis 连接池中的连接数已经达到最大值,此时有新的连接请求到来,就会根据 `spring.redis.pool.max-wait` 的值来决定新请求的连接是否等待可用连接的释放,或者直接抛出异常。默认情况下,`spring.redis.pool.max-wait` 的值为 -1,表示连接请求会一直等待,直到有可用的连接为止。
`spring.redis.timeout` 是 Redis 客户端与 Redis 服务器建立连接的超时时间。如果 Redis 客户端在指定的时间内无法连接到 Redis 服务器,则会抛出连接超时异常。默认情况下,`spring.redis.timeout` 的值为 2000 毫秒。
因此,这两个属性是用于不同的目的,`spring.redis.pool.max-wait` 用于控制连接池中连接的等待时间,而 `spring.redis.timeout` 用于控制 Redis 客户端与 Redis 服务器建立连接的超时时间。
相关问题
springboot 连接redis 报错 redis.connection.poolException could not get a resource from the pool
这个错误一般是连接池耗尽导致的,可以通过以下方式解决:
1. 增加 Redis 连接池的最大连接数
可以通过在 Spring Boot 配置文件中增加以下属性来增加连接池最大连接数:
```
spring.redis.jedis.pool.max-active=100
```
这里的 `max-active` 表示最大激活连接数,可以根据实际情况进行调整。
2. 增加 Redis 连接池的最大等待时间
可以通过在 Spring Boot 配置文件中增加以下属性来增加连接池最大等待时间:
```
spring.redis.jedis.pool.max-wait=5000
```
这里的 `max-wait` 表示最大等待时间,单位为毫秒。如果连接池中没有空闲连接可用,会等待一段时间后抛出异常,可以根据实际情况进行调整。
3. 检查 Redis 服务器配置
如果以上两种方式都无法解决问题,可能是 Redis 服务器配置问题导致的。可以检查 Redis 服务器的配置,特别是 `maxclients` 和 `timeout` 等相关配置,确保它们可以满足实际需求。
希望以上方法能够帮助你解决问题。
spring boot redis
在Spring Boot中使用Redis主要有以下几步:
1. 需要在项目的依赖中加入Redis的相关Jar包,可以在pom.xml文件中添加以下代码来引入Redis的依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>${spring-boot.version}</version>
</dependency>
```
2. 在配置文件application.properties中添加Redis的连接配置,包括数据库索引、服务器地址、连接端口、连接密码等,例如:
```
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.0.24
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=1000
```
3. 可以通过自定义注入bean组件配置来使用Redis。StringRedisTemplate是Redis的一个常用类,它的key和Value默认就是String方式,不需要再自己定义RedisTemplate的配置类。在Spring Boot中可以直接使用StringRedisTemplate来操作Redis,例如可以通过它来写入和读取Redis中的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [springboot整合Redis详解完整篇](https://blog.csdn.net/weixin_43978695/article/details/111054363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [springBoot整合redis使用介绍(详细案例)](https://blog.csdn.net/weixin_43811057/article/details/120382906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐















