背景:
测试环境的redis不知道咋回事突然无法连接,服务器登录查了一下发现连接数用完了。研发说雨女无瓜,测试环境删了没事,正事要紧赶紧恢复。得嘞!
> info clients # Clients connected_clients:9997 # 连接中的数量 client_recent_max_input_buffer:54366 client_recent_max_output_buffer:0 blocked_clients:57 # 阻塞中的客户端数量
再查看一下具体的信息,发现确实很多客户端都存在很久了(单位是秒),所以清一下。
以下是python清理脚本
import redisdef get_redis_connection_info():r = redis.Redis(host='192.168.1.33', port=6379, password='123456AAA')info = r.info('clients')# 打印当前客户端整体情况print(info)# 获取连接列表client_list = r.execute_command('CLIENT LIST')# 遍历删除连接,空闲时间大于一天的删除for conn in client_list:idle_time = int(conn.get('idle'))if idle_time > 86400:conn_id = conn.get('id')r.execute_command(f'CLIENT KILL ID {conn_id}')r.close()if __name__ == "__main__":get_redis_connection_info()
执行完再查看一下:
虚浮。。。