同事整理了,python查询redis集群的代码,我觉得挺好用的,比那个-c 查的准确,所以把它共享出来
import redis #from rediscluster import StrictRedisCluster from click._compat import raw_input from rediscluster import RedisCluster as StrictRedisCluster def redis_cmd(redis_nodes,isClusterMode=True): if isinstance(redis_nodes,list): pass elif isinstance(redis_nodes,str): tmp_nodes = [] tmp_tuple = redis_nodes.split(",") for tt in tmp_tuple: tt_node = {"host":tt.split(":")[0],"port":tt.split(":")[1]} tmp_nodes.append(tt_node) redis_nodes = tmp_nodes if isClusterMode: rc = StrictRedisCluster(startup_nodes=redis_nodes, decode_responses=True) else: rc = redis.Redis(host=redis_nodes[0]["host"],port=redis_nodes[0]["port"],decode_responses=True) while True: s = raw_input("input cmd: >>> ") if s == "quit" or s == "exit": print("query end.") break cmd = s.split(" ")[0] key = s.split(" ")[1:] if cmd.lower() not in ["", "ltrim","ttl", "get", "key", "keys", "set", "lrange", "hget", "smembers", "zrange", "type", "pfcount", "zrange", "hgetall","del", "sismember","sadd","hset","llen","srem","scard","info","cluster info","info Keyspace","hlen","hdel"]: print ("wrong type of command, please retry...") elif cmd == "ttl": print(rc.ttl(*key)) elif cmd == "ltrim": print(rc.ltrim(*key)) elif cmd == "get": print(rc.get(*key)) elif cmd == "key": print(rc.key(*key)) elif cmd == "keys": print(rc.keys(*key)) elif cmd == "set": print(rc.set(*key)) elif cmd == "lrange": print(rc.lrange(*key)) elif cmd == "hget": print(rc.hget(*key)) elif cmd == "smembers": print(rc.smembers(*key)) elif cmd == "srem": print(rc.srem(*key)) elif cmd == "zrange": print(rc.zrange(*key)) elif cmd == "type": print(rc.type(*key)) elif cmd == "pfcount": print(rc.pfcount(*key)) elif cmd == "zrange": print(rc.zrange(*key)) elif cmd == "hgetall": print(rc.hgetall(*key)) elif cmd == "del": print(rc.delete(*key)) elif cmd == "sismember": print(rc.sismember(*key)) elif cmd == "sadd": print(rc.sadd(*key)) elif cmd == "scard": print(rc.scard(*key)) elif cmd == "hset": print(rc.hset(*key)) elif cmd == "llen": print(rc.llen(*key)) elif cmd == "hlen": print(rc.hlen(*key)) elif cmd == "hdel": print(rc.hdel(*key)) elif cmd == "info": print(rc.info(*key)) elif cmd == "cluster info": print(rc.info("cluster")) elif cmd == "info Keyspace": print(rc.info("Keyspace")) def usage(): pass if __name__=="__main__": redis_nodes = "172.17.9.106:16388,172.17.9.108:16388" isRedisCluster = False
运行效果