redis 常见异常

版权声明:如果觉得我的博客对你有帮助, 请点赞或评论! https://blog.csdn.net/zongf0504/article/details/88391680

总结生产开发环境, 常见的redis 异常。

1. 异常:ERR max number of clients reached

最近笔者的redis sentinel 集群突然报错说, 已到达最大连接数。笔者采用的redis 环境为sentinel 高可用集群, 问题表象为:

  • java 应用通过jedis 连接抛出此异常
  • 使用redis客户端连接哨兵,执行info命令,抛出异常
  • 使用redis客户端连接redis服务, 执行info命令,正常执行

1.1 抛出异常

登录哨兵客户端,发现异常:

# redis-cli -h 127.0.0.1  -p 26481
127.0.0.1:26481> info
ERR max number of clients reached

登录redis 客户端发现正常:

127.0.0.1:26481> info clients
# Clients
connected_clients:6
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

1.2 查看进程TCP连接数

  • 通过netstat 命令可以看出哨兵连接数为4064个, 查看redis 配置文件中maxClient 的值也是4064. 所以确实达到了上限。
  • 如果想看该进程具体有哪些终端在连, 则去掉 wc 命令即可。
# netstat -an | grep 26481 | wc -l
4064

1.3 解决方案

  • 修改redis 配置文件, 将maxClients 的参数调整为40640
  • 重启redis 服务和redis 哨兵服务即可

猜你喜欢

转载自blog.csdn.net/zongf0504/article/details/88391680