python查询redis数据

同事整理了,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

  运行效果

原文地址:https://www.cnblogs.com/chongyou/p/14273345.html