##redis客户端连接数

    ##redis通过监听一个TCP端口或socket的方式接收来自客户端的连接,当与客户端建立连接后,redis内部会进行如下操作:(1)客户端socket会被设置为非阻塞模式,因为redis在网络时间处理上采用的是非阻塞多路复用模型;(2)然后为这个socket设置TCP_NODELAY属性,禁用Nagle算法;(3)然后创建一个可读的文件事件用于监听这个客户端socket的数据发送。

##redis最大连接数

##(1.1)2.6之后版本,可以修改最大连接数配置,默认10000,可以在redis.conf配置文件中修改

...
# maxclients 10000
...
1.
2.
3.
##(1.2)启动redis.service服务时加参数--maxclients 100000来设置最大连接数限制

redis-server --maxclients 100000 -f /etc/redis.conf
1.
##命令行查看 & 修改稿redis最大连接数

127.0.0.1:6379> CONFIG GET maxclients
    ##1) "maxclients"
    ##2) "10000"
127.0.0.1:6379>
1.
2.
3.
4.


##redis-cli命令控制行中获取客户端信息命令

CLIENT LIST获取客户端列表

CLIENT SETNAME    设置当前连接点redis的名称

CLIENT GETNAME    查看当前连接的名称

CLIENT KILL ip:port    杀死指定连接

CLIENT LIST
    ##id=3 addr=127.0.0.1:36588 fd=5 name= age=7 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
CLIENT SETNAME js
    ##OK
CLIENT LIST
    ##id=3 addr=127.0.0.1:36588 fd=5 name=js age=37 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
CLIENT GETNAME
    ##"js"
CLIENT KILL id 3

生产问题:

redis集群客户端连接满,redis连接数居高不下,应用中redis请求报连接满的错,导致返回异常。

解决方案:

在应用中配置了redis的最大空闲连接数和最大空闲时间后,还需要在redis的配置中,配置空闲连接的超时时间 CONFIG SET timeout 30。timeout参数值的单位为秒(s),取值范围为0~100000。
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐