redis连接池问题 - 357145262/michael GitHub Wiki
- Connection reset by peer lettuce: cluster: refresh: adaptive: true #20秒自动刷新一次 period: 20 spring.redis.jedis.pool.test-while-idle=true
2.重置连接池 lettuceConnectionFactory.initConnection(); lettuceConnectionFactory.resetConnection();`等获取、初始化、重置连接的方法
查看当前连接数
127.0.0.1:6379> info clients
Clients
connected_clients:3 client_recent_max_input_buffer:8 client_recent_max_output_buffer:0 blocked_clients:0 tracking_clients:0 clients_in_timeout_table:0
查看超时
127.0.0.1:6379> config get time*
- "timeout"
- "0"
查看最大存活时间
127.0.0.1:6379> config get tcp*
- "tcp-keepalive"
- "300"
- "tcp-backlog"
- "511"
查看最大客户端数
127.0.0.1:6379> config get maxc*
- "maxclients"
- "10000" 复制代码 修改 Redis 配置(临时生效,重启 Redis 失效,想持久有效可修改配置文件)
最大连接数 3W
config set maxclients 30000
超时时间 300 秒
config set timeout 300
最大存活时间 60 秒
config set tcp-keepalive 60
每次使用前都校验连接 @Bean public RedisTemplate<String, Object> myRedisTemplate(LettuceConnectionFactory factory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); //解决redis每隔一段时间强制关闭远程连接的问题 factory.setValidateConnection(true); redisTemplate.setConnectionFactory(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); // 设置 Key 和 Value 的序列化规则 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); // 初始化 RedisTemplate 序列化完成 redisTemplate.afterPropertiesSet(); return redisTemplate; }
https://developer.aliyun.com/article/917587
配置建议 https://support.huaweicloud.com/intl/zh-cn/dcs_faq/dcs-faq-211230001.html