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'))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM