1. 程式人生 > >開發手記:JedisConnectionException: Could not get a resource from the pool

開發手記:JedisConnectionException: Could not get a resource from the pool

nfa 最大連接數 redis color 重試 direction str bsp blog

對於Redis,生產環境是集群模式,測試環境是單例模式,如果在生產環境中用單例模式會報錯。

解決辦法,通過雲配置,將配置進行自動化配置。

技術分享圖片

另附一份Redis配置:

#*********************Redis單節點配置************************
# Redis服務器地址
spring.redis.host=10.5.172.67
# Redis服務器連接端口
spring.redis.port=7006  

#*********************RedisCluster集群配置************************
# Redis服務器地址
spring.redis.hosts
=10.30.10.169:6379,10.30.10.170:6379,10.30.10.171:6379,10.30.10.169:6380,10.30.10.170:6380,10.30.10.171:6380 # 讀取超時時間(毫秒),源碼:JedisConnectionFactory中在jedisCluster中設置的和timeout連接超時是一致的。 # return StringUtils.hasText(getPassword()) # ? new JedisCluster(hostAndPort, timeout, timeout, redirects, password, poolConfig) # :
new JedisCluster(hostAndPort, timeout, redirects, poolConfig); spring.redis.sotimeout=1000 # 最大重試次數 spring.redis.maxAttempts=2 #集群間最大跳轉次數,如果不設置maxRedirects值,源碼中默認為5。一般當此值設置過大時,容易報:Too many Cluster redirections #源碼是在JedisConnectionFactory中設置的new JedisCluster(hostAndPort, timeout, timeout, redirects, password, poolConfig) spring.redis.maxRedirects
=5 #*********************Redis通用配置************************ # Redis服務器連接密碼(默認為空) spring.redis.password= hol@123456 # 連接池最大連接數(使用負值表示沒有限制) spring.redis.pool.max-active=8 # 連接池最大阻塞等待時間(使用負值表示沒有限制),單位毫秒 spring.redis.pool.max-wait=-1 # 連接池中的最大空閑連接 spring.redis.pool.max-idle=8 # 連接池中的最小空閑連接 spring.redis.pool.min-idle=1 # 連接池中逐出連接的最小空閑時間 默認1800000毫秒(30分鐘) spring.redis.pool.min-evictableIdleTimeMillis=1800000 # 連接超時時間(毫秒) spring.redis.timeout=1000 # redis cacheManager過期時間,單位秒,默認為0,代表永不過期 spring.redis.cacheManager.expire = 86400

開發手記:JedisConnectionException: Could not get a resource from the pool