封装redis(set/get/delete)str和哈希类型

将Redis的常用操作封装了一下:

import redis
class MyRedis():
    def __init__(self,ip,passwd,port=6379,db=0):  #构造函数
        try:
            self.r = redis.Redis(host=ip,password=passwd,port=port,db=db)
        except Exception as e:
            print('redis连接失败,错误信息%s' %e)
    def str_get(self,k):  #获取数据要有返回值,所以要有返回值
        res = self.r.get(k)
        if res:
            return res.decode()
        return None  #写不写都行
    def str_set(self,k,v,time=None):
        self.r.set(k,v,time)
    def delete(self,k):
        tag = self.r.exists(k)  #判断这个key师傅存在
        if tag:
            self.r.delete(k)
            print('删除成功')
        else:
            print('这个key不存在')
    def hash_get(self,name,k):  #无论key是否存在,都不会报错,所以不用写try
        res = self.r.hget(name,k)
        if res:
            res.decode()
    def hash_set(self,name,k,v):
        self.r.hset(name,k,v)
    def hash_getall(self,name):
        data = {}
        res = self.r.hgetall(name)
        if res:
            for k,v in res.items:
                k = k.decode()
                v = v.decode()
                data[k]=v
        return data
    def hash_del(self,name,k):
        res = self.r.hdel(name,k)
        if res: #因为删除成功会返回1,删除失败返回0
            print('删除成功')
            return 1
        else:
            print('删除失败,该key不存在')
            return 0
    @property    #定义为属性方法,以后可以直接调用
    def clean_redis(self):
        self.r.flushdb()  #清空redis
        print('清空redis成功!')

以后拿来就好用,加油!!

猜你喜欢

转载自www.cnblogs.com/fancyl/p/9100221.html