# -*- coding: utf-8 -*- import redis import json import logging import pdb log = logging.getLogger(__name__) dev_conf = {"host": "10.10.9.5", "port": "6379"} class Myredis(): def __init__(self, conf): if conf.get('passwd', None): self.r = redis.Redis(host=conf['host'], port=conf['port'], password=conf['passwd'], charset='utf8', decode_responses=True) else: self.r = redis.Redis(host=conf['host'], port=conf['port'], charset='utf8', decode_responses=True) def get_keys(self, keyword): return self.r.keys(keyword) def get_one_key(self, key): if self.r.type(key) == 'hash': return self.r.hgetall(key) elif self.r.type(key) == 'list': return self.r.lrange(key) elif self.r.type(key) == 'zset': return self.r.smembers(key) elif self.r.type(key) == 'string': return self.r.get(key) else: log.error(f"{key} {self.r.type(key)} not in define!") return None def set_redis(self, k, v): if isinstance(v, str): self.r.set(k, v) elif isinstance(v, list): for i in v: self.r.lpush(k, i) elif isinstance(v, dict): self.r.hmset(k, v) elif isinstance(v, set): for i in v: self.r.sadd(k, i) else: log.error(f"{v} type not in define!") def main(): mr = Myredis(dev_conf) keys = mr.get_keys("*") for k in keys: print(f"key={k},values={mr.get_one_key(k)}") if __name__ == "__main__": main()