redis连接池问题 - 357145262/michael GitHub Wiki

  1. 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*

  1. "timeout"
  2. "0"

查看最大存活时间

127.0.0.1:6379> config get tcp*

  1. "tcp-keepalive"
  2. "300"
  3. "tcp-backlog"
  4. "511"

查看最大客户端数

127.0.0.1:6379> config get maxc*

  1. "maxclients"
  2. "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