zoukankan      html  css  js  c++  java
  • 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
    

      运行效果

  • 相关阅读:
    sudo: no tty present and no askpass program specified 解决方法
    中间件kingshard入门(一):基本安装
    mysql主从配置
    haproxy+keepalive双主高可用实现负载均衡
    lvs负载均衡配置
    docker可视化集中管理工具shipyard安装部署
    安装nodejs
    redis数据导入与导出以及配置使用
    搭建ss5环境
    thinkphp5+python.apscheduler实现计划任务
  • 原文地址:https://www.cnblogs.com/chongyou/p/14273345.html
Copyright © 2011-2022 走看看