标签:http print orm ace bin 执行 string iter __name__
1.密码特殊字符
[root@VM_0_111_centos redis]# cat mybigkeys.py #!/usr/bin/env python import sys import redis def check_big_key(r, k): bigKey = False length = 0 try: type = r.type(k) if type == "string": length = r.strlen(k) elif type == "hash": length = r.hlen(k) elif type == "list": length = r.llen(k) elif type == "set": length = r.scard(k) elif type == "zset": length = r.zcard(k) except: return # if length > 10240: if length > 10240: bigKey = True if bigKey: print db, k, type, length def find_big_key_normal(db_host, db_port, db_num): db_password = "D0p(8i!!!!" r = redis.StrictRedis(host=db_host, port=db_port, db=db_num,password=db_password) for k in r.scan_iter(count=1000): check_big_key(r, k) def find_big_key_sharding(db_host, db_port, db_num, nodecount): r = redis.StrictRedis(host=db_host, port=db_port, db=db_num) cursor = 0 for node in range(0, nodecount): while True: iscan = r.execute_command("iscan", str(node), str(cursor), "count", "1000") for k in iscan[1]: check_big_key(r, k) cursor = iscan[0] print cursor, db, node, len(iscan[1]) if cursor == "0": break; if __name__ == ‘__main__‘: if len(sys.argv) != 3: print ‘Usage: python ‘, sys.argv[0], ‘ host port password ‘ exit(1) db_host = sys.argv[1] db_port = sys.argv[2] db_password = "D0p(8i!qa!!!" r = redis.StrictRedis(host=db_host, port=int(db_port),password=db_password) nodecount = 1 #nodecount = r.info()[‘nodecount‘] keyspace_info = r.info("keyspace") for db in keyspace_info: print ‘check ‘, db, ‘ ‘, keyspace_info[db] if nodecount > 1: find_big_key_sharding(db_host, db_port, db.replace("db", ""), nodecount) else: find_big_key_normal(db_host, db_port, db.replace("db", "")) [root@VM_0_111_centos redis]#
2.执行
[root@VM_0_111_centos redis]# python mybigkeys.py 10.0.0.74 6379
参考:https://www.cnblogs.com/soilge/p/11641327.html
标签:http print orm ace bin 执行 string iter __name__
原文地址:https://www.cnblogs.com/hixiaowei/p/13242342.html