62 lines
1.7 KiB
Python
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()
|