Python操作redis

來源:互聯網
上載者:User

標籤:分享   訪問   封裝   put   python   雜湊   main   客戶   val   

1.python操作redis1.1.安裝

輸入命令:

pip  install redis
2.2.使用
引入模組import redis 串連try:     r=redis.StrictRedis(host=‘localhost‘,port=6379) except Exception,e:     print e.message 方式一:根據資料類型的不同,調用相應的方法,完成讀寫更多方法同上邊寫的命令r.set(‘name‘,‘hello‘) r.get(‘name’) 方式二:pipline緩衝多條命令,然後一次性執行,減少伺服器-用戶端之間TCP資料庫包,從而提高效率pipe = r.pipeline() pipe.set(‘name‘, ‘world‘) pipe.get(‘name‘) pipe.execute()
  • 封裝
#串連redis伺服器部分是一致的#這裡將string類型的讀寫進行封裝import redis class RedisHelper():     def __init__(self,host=‘localhost‘,port=6379):         self.__redis = redis.StrictRedis(host, port)             def get(self,key):        if self.__redis.exists(key):             return self.__redis.get(key)         else:             return ""         def set(self,key,value):         self.__redis.set(key,value)
2.執行個體
#coding=utf-8 import redis class CRedis:   def __init__(self):     self.host = ‘localhost‘    self.port = 6379    self.db = 0    self.r = redis.Redis(host = self.host, port = self.port, db = self.db)   #1. strings 類型及操作   #設定 key 對應的值為 string 類型的 value   def set(self, key, value):     return self.r.set(key, value)   #設定 key 對應的值為 string 類型的 value。如果 key 已經存在,返回 0,nx 是 not exist 的意思   def setnx(self, key, value):     return self.r.setnx(key, value)   #設定 key 對應的值為 string 類型的 value,並指定此索引值對應的有效期間   def setex(self, key, time, value):     return self.r.setex(key, time, value)   #設定指定 key 的 value 值的子字串   #setrange name 8 gmail.com   #其中的 8 是指從下標為 8(包含 8)的字元開始替換   def setrange(self, key, num, value):     return self.r.setrange(key, num, value)   #擷取指定 key 的 value 值的子字串   def getrange(self, key, start ,end):     return self.r.getrange(key, start, end)   #mget(list)   def get(self, key):     if isinstance(key, list):       return self.r.mget(key)     else:       return self.r.get(key)   #刪除   def remove(self, key):     return self.r.delete(key)   #自增   def incr(self, key, default = 1):     if (1 == default):       return self.r.incr(key)     else:       return self.r.incr(key, default)   #自減   def decr(self, key, default = 1):     if (1 == default):       return self.r.decr(key)     else:       return self.r.decr(key, default)   #2. hashes 類型及操作   #根據email擷取session資訊   def hget(self, email):     return self.r.hget(‘session‘, email)   #以email作為唯一標識,增加使用者session   def hset(self, email, content):     return self.r.hset(‘session‘, email, content)   #擷取session雜湊表中的所有資料   def hgetall(self):     return self.r.hgetall(‘session‘)   #刪除hashes   def hdel(self, name, key = None):     if(key):       return self.r.hdel(name, key)     return self.r.hdel(name)   #清空當前db   def clear(self):     return self.r.flushdb()  #3、lists 類型及操作   #適合做郵件隊列   #在 key 對應 list 的頭部添加字串元素   def lpush(self, key ,value):     return self.r.lpush(key, value)   #從 list 的尾部刪除元素,並返回刪除元素   def lpop(self, key):     return self.r.plush(key) if __name__ == ‘__main__‘:   r = CRedis()
3.Redis緩衝Mysql類比使用者登入,Python實現執行個體
  • 整體邏輯如下:

1 .使用者登入首先判斷是否在redis緩衝中,如果在redis緩衝中,直接登入成功;
2 .若使用者未在redis緩衝,則訪問Mysql,判斷使用者是否存在,如果不存在,則提示使用者註冊;如果存在,則登入成功;
3 .在Mysql存在並登入成功的同時,將改條資料用Redis Hash類型進行緩衝,並設定到期時間為20分鐘;

  • python操作redis使用者登入
# -*- coding:utf-8 -*-import redisclass Redis_login():    def __init__(self,user,pwd):        r.mset(guoyan=‘123‘,lixiang=‘1234‘,shengli=‘12345‘)    def login(self):        ls = []        for key in r.keys():            ls.append(key.decode(‘utf-8‘))        if user not in ls:            print(‘使用者名稱錯誤請重新輸入‘)        elif r.get(user).decode(‘utf-8‘) == pwd:            print(‘登入成功!!!‘)        else:            red.not_login()    def not_login(self):        print(‘輸入錯誤請重新輸入‘)if __name__ == ‘__main__‘:    pool = redis.ConnectionPool(host=‘127.0.0.1‘, port=6379)    r = redis.Redis(connection_pool=pool)    while True:        user = raw_input(‘請輸入使用者名稱\n‘)        pwd = raw_input(‘請輸入密碼\n‘)        red = Redis_login(user,pwd)        red.login()

 

Python操作redis

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.