python操作redis

來源:互聯網
上載者:User

標籤:string   localhost   line   exec   name   hal   多少   logs   客戶   

前面介紹的內容都是在資料庫命令列直接操作redis,現在學習使用python的redis包來操作redis,本人安裝的是redis==2.10.6;還不熟悉redis命令列操作的朋友請參考:

redis基礎一

redis基礎二

python與redis的互動
  • 安裝:

環境:Ubuntu16.04;redis-4.0.6

$ sudo pip redis
  • 測試
$ ipythonimport redis    # 出現版本資訊,安裝成功
redis執行個體化對象
import redisr1 = redis.Redis()r2 = redis.StrictRedis()# redis有上面兩個類可以建立連線物件,用法幾乎一樣,推薦使用StrictRedis.r = redis.StrictRedis(host=‘localhost‘,  # 預設ip為127.0.0.1                      port=6379,   # 預設連接埠6379                      db=0,        # 預設資料庫0                      password=None,) # 預設沒有密碼
redis操作string類型
print(con.set(‘num‘, ‘3‘))  # string類型的插入索引值對,參數key,value;返回true或Falseprint(con.setex(‘name‘,3,‘xiaobai‘)) # 設定一個有時間的索引值對,返回true或falseprint(con.setnx(‘my‘,‘hh‘))  # 設定單個不存在的索引值對print(con.mset({‘my‘:‘cai‘}))  # 設定多個索引值對,返回true或falseprint(con.msetnx({‘you‘:‘tan‘,‘my‘:‘wan‘})) # 為不存在的鍵設定值,如果有一個已經存在,整個會失敗,返回false
print(con.get(‘num‘))       # 擷取鍵的值,返回二進位的資料print(con.getrange(‘name‘, 0, 2))  # 擷取子串,參數key、下標範圍print(con.strlen(‘name‘))  # 擷取值的長度print(con.exists(‘name‘)) # 是否存在這個鍵,針對所有的類型
print(con.incr(‘num‘))      # 值自加操作,返回計算後的結果值print(con.incr(‘num‘,‘23‘))  # 值加一個整數操作,返回計算後的結果值,print(con.incrby(‘num‘, ‘5‘)) # 值加一個整數操作,返回計算後的結果值print(con.incrbyfloat(‘num‘, ‘3.5‘))  # 值加一個浮點數操作,返回計算後的結果值print(con.incrbyfloat(‘num‘, ‘-3.5‘))  # 值加一個浮點數操作,返回計算後的結果值print(con.decr(‘num‘))  # 值自減操作,返回計算後的結果值print(con.decr(‘num‘, ‘5‘))  # 值減一個整數操作,返回計算後的結果值print(con.append(‘boy‘, ‘tom‘))  # 字串拼接,參數key value,返回當前字串的長度print(con.setrange(‘name‘, ‘5‘, ‘hh‘))  # 字串替換字元,參數為鍵、位移量、值,返回當前字串的長度
print(con.delete(‘my‘,‘name‘))  # 刪除多個索引值對,擷取刪除成功的數量
redis操作list類型
print(con.rpush(‘list‘, ‘v1‘, ‘v2‘))  # 從列表的首部插入,參數鍵、值,值可多個,返回列表的長度print(con.lpush(‘list‘, ‘vx‘))        # 從列表的尾部插入,參數鍵、值,值可多個,返回列表的長度con.lset(‘list‘,0,20)                 # 在列表的下標0位置插入20
print(con.lrange(‘list‘,0,-1))  # 擷取範圍內的元素,返回一個列表,原來的列表不變
print(con.lpop(‘list‘))   # 從列表首部彈出一個元素print(con.rpop(‘list‘))  # 從列表尾部彈出一個元素print(con.blpop(‘list‘,3))  # 從列表首部彈出一個元素,在3秒內阻塞等待,預設為0秒;沒有擷取值返回noneprint(con.brpop(‘list‘, 3))  # 從列表右端彈出一個元素,在3秒內阻塞等待,預設為0秒
print(con.rpoplpush(‘list‘, ‘list1‘)) # 將list最右端的元素移到list1的最左端,返回移動的元素# 將list最右端的元素移到list1的最左端,返回移動的元素,等待時間3秒,預設0秒print(con.brpoplpush(‘list‘, ‘list1‘, 3))print(con.ltri(‘list‘, 2, -1)) # 剪下列表,返回剪下後的列表,改變了原來的列表
redis操作hash
print(con.hset(‘fruit‘,‘apple‘,‘red‘)) # 設定單個散列索引值對,參數name,key,value,返回true或falseprint(con.hmset(‘color‘, {‘blue‘:‘good‘,‘green‘:‘bad‘}))  # 對個散列索引值對,返回true或falseprint(con.hsetnx(‘goods‘, ‘color‘, ‘white‘))
print(con.hdel(‘color‘,‘blue‘))  # 刪除散列的某些索引值對,至少成功一個返回true,其他返回False
print(con.hget(‘color‘, ‘green‘)) # 擷取散列的單個值print(con.hmget(‘color‘, ‘green‘, ‘blue‘))  # 擷取散列的多個值print(con.hkeys(‘color‘))  # 擷取散列的所有的鍵print(con.hvals(‘color‘))  # 擷取散列的所有的值print(con.hgetall(‘color‘))  # 擷取散列的所有的索引值對,返回一個二進位編碼的字典print(con.hexists(‘color‘,‘red‘)) # 判斷一個散列是否存在某個鍵,返回true或Falseprint(con.hstrlen(‘color‘, ‘blue‘))  # 擷取值字串的長度,返回一個數字print(con.hlen(‘color‘))  # 擷取該散列的索引值對數量
print(con.hincrby(‘color‘, ‘blue‘, 3)) # 將散列的值加一個整數,預設加1print(con.hincrbyfloat(‘color‘, ‘blue‘, 3.5))  # 加一個浮點數,預設為1.0
redis操作集合
print(con.sadd(‘name‘, ‘a‘, ‘b‘))  # 添加元素,返回添加的個數
print(con.srem(‘name‘,‘a‘))  # 移除元素,返回移除元素的數量print(con.spop(‘name‘))  # 隨機的移除一個元素
print(con.smove(‘name‘,‘name1‘,‘bb‘)) # 將bb從name移到name1,如果name1不存在,建立;返回true或false
print(con.smembers(‘name‘))  # 返回集合所有的元素,以字典的形式print(con.scard(‘name‘))  # 返回集合元素的個數print(con.sismember(‘name‘,‘b‘)) # 查看元素是否在集合中,返回true或false
其他redis函數
  • 清除當前資料庫
con.flushdb() 
  • 清空當前redis
con.flushall()
  • 為鍵設定到期時間
con.expire(‘name‘,3)  # 單位為秒
  • 查看伺服器時間
con.time()  # 返回時間戳記和當前已過去的微秒數
  • 查看鍵還有多少生存期
con.ttl(key) # 時間單位為秒
  • 查看所有的鍵
con.keys()  # 預設參數為‘*‘
  • 按命令列的方式寫redis
con.execute_command(‘SET‘,‘my‘, ‘hhhh‘)
管道
  • 管道可以緩衝命令,減少用戶端與redis-server互動的次數
# 建立一個管道值pipe = con.pipeline()pipe.get(‘name‘)pipe.set(‘name‘,‘xiao‘)# 提交pipe.execute()

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.