Python scan查找Redis集群中的key
import redis import sys from rediscluster import StrictRedisCluster #host = "172.17.155.118" #port = 6379 #passwd = "" instance_ip = sys.argv[1] instance_port = sys.argv[2] startup_nodes = [{"host": instance_ip, "port": instance_port }] rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True, password="") def check_key(rc,k): key_len = 0 big_key = [] try: type = rc.type(k) if type == "string": key_len = rc.strlen(k) elif type == "hash": key_len = rc.hlen(k) elif type == "list": key_len = rc.llen(k) elif type == "set": key_len = rc.scard(k) elif type == "zset": key_len = rc.zcard(k) else: print("Redis key type: "+type) except Exception: print("Redis key type error.") if key_len > 5: big_key.append(k) big_key.append(type) big_key.append(key_len) print(big_key) def scan_key(rc): rc_end = [] try: rc_end = rc.scan_iter("*") except Exception as e: pass #print(e) for k in rc_end: check_key(rc,k) if __name__ == '__main__': scan_key(rc)
import redis import sys db_host = "" db_port = r = redis.StrictRedis(host=db_host, port=int(db_port)) for k in r.scan_iter("lie*"): print k