利用python腳本統計和刪除redis key


該腳本掃描redis中所有的key,用於分析redis內存數據的key構成,掃描並保存文件,需要python支持redis模塊。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#jack chen
import os, sys, time
import redis

def redis_scan():
    try:
        redisconn = redis.StrictRedis(host="xx.xx.xx.xx", port=6379, db=0)        #不同db需要修改
    except Exception as e:
        print("connect redis error")
        sys.exit(1)
    cursor = 1
    isNoe = True
    file = open('rediskey', 'a+')
    while cursor != 0:
        if isNoe:
            cursor = 0
            isNoe = False
        key = redisconn.scan(cursor, count=2000)        #每次拿2000個key
        time.sleep(0.05)
        if len(key[1]) == 0:
            print("key scan finish")
        else:
            for n in key[1]:
                n = bytes.decode(n)
                file.write(n)
                file.write("\n")
                cursor = key[0]
    file.close()

redis_scan()

刪除key

提前把key保存到key.txt文件中,然后讀取一行一行執行刪除key的動作。

#!/bin/env python
# -*- coding: UTF-8 -*-
#function: 根據文件列表刪除key,一行一個redis key
#authors: jack chen
import os, sys
import redis
import time

conn = redis.StrictRedis(host="xx.xx.xx.xx",port=6379,db=0)           #注意redis的db

with open('key.txt') as file:
    for line in file:
        time.sleep(0.001)
        keyname = line.rstrip('\n')
        conn.delete(keyname)
        print("key: %s delete ok" %keyname)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM