• python--封装Redis


    Redis封装

    import redis

    class MyRedis():
        def __init__(self,ip,password,port=6379,db=1):#构造函数
            try:
                self.r = redis.Redis(host=ip,password=password,port=port,db=db)  #连接redis固定方法,这里的值必须固定写死
            except Exception as e:
                print('redis连接失败,错误信息%s'%e)
        def str_get(self,k):
            res = self.r.get(k)   #会从服务器传对应的值过来,性能慢
            if res:
                return res.decode()   #redis里面拿到的是bytes类型的数据,需要转换一下

        def str_set(self,k,v,time=None): #time默认失效时间
            self.r.set(k,v,time)

        def delete(self,k):
            tag = self.r.exists(k)
            #判断这个key是否存在,相对于get到这个key他只是传回一个存在火灾不存在的信息,
            # 而不用将整个k值传过来(如果k里面存的东西比较多,那么传输很耗时)
            if tag:
                self.r.delete(k)
            else:
                print('这个key不存在')

        def hash_get(self,name,k):  #哈希类型存储的是多层字典(嵌套字典)
            res = self.r.hget(name,k)
            if res:
                return res.decode()  #因为get不到值得话也不会报错所以需要判断一下

        def hash_set(self,name,k,v): #哈希类型的是多层
            self.r.hset(name,k,v)   #set也不会报错

        def hash_getall(self,name):
            res = self.r.hgetall(name)   #得到的是字典类型的,里面的k,v都是bytes类型的
            data={}
            if res:
                for k,v in res.items(): #循环取出字典里面的k,v,在进行decode
                    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:
                print('删除成功')
                return 1
            else:
                print('删除失败,该key不存在')
                return 0

        @property   #属性方法,
                    # 使用的时候和变量一个用法就好比实例,A=MyRedis(), A.clean_redis使用,
                    # 如果不加这个@property,使用时A=MyRedis(), A.clean_redis()   后面需要加这个函数的括号
        def clean_redis(self):
            self.r.flushdb()   #清空 redis
            print('清空redis成功!')
            return 0



    a = MyRedis('118.0000','HK0000*')

    print(a.str_get('duan'))

  • 相关阅读:
    Mac 终端命令使用自动补全时忽略大小写设置
    Android App专项测试
    评估产品机会
    如何快速获取ListView的打气筒对象
    js处理日期格式yyyy-MM-dd hh:mm:ss
    websocket聊天时,图片压缩处理(url或者input-file)
    canvas图片压缩,局部放大,像素处理
    vscode 右键文件或者文件夹显示菜单
    HTML5-SQLLite连接
    ie下div模拟的表格,表头表体无法对齐
  • 原文地址:https://www.cnblogs.com/duanjialin007/p/9124099.html
Copyright © 2020-2023  润新知