是用python脚本清理reids连接

背景:

  测试环境的redis不知道咋回事突然无法连接,服务器登录查了一下发现连接数用完了。研发说雨女无瓜,测试环境删了没事,正事要紧赶紧恢复。得嘞!

> info clients
# Clients
connected_clients:9997  # 连接中的数量
client_recent_max_input_buffer:54366
client_recent_max_output_buffer:0
blocked_clients:57  # 阻塞中的客户端数量

再查看一下具体的信息,发现确实很多客户端都存在很久了(单位是秒),所以清一下。

 以下是python清理脚本

import redis


def 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()

 执行完再查看一下:

 虚浮。。。

 

posted @ 2024-10-08 16:24  高佳丰  阅读(5)  评论(0编辑  收藏  举报