m1/myredis.py
2020-04-17 11:37:13 +08:00

62 lines
1.7 KiB
Python

# -*- 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',
db=conf.get('db') or 0,
decode_responses=True)
else:
self.r = redis.Redis(host=conf['host'], port=conf['port'], charset='utf8', db=conf.get('db') or 0,
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()