Python操做redis系列之 列表(list) (五)(轉)

# -*- coding: utf-8 -*-
import redis r =redis.Redis(host="123.156.74.190",port=6379,password="66666666666")
1. Lpush 命令將一個或多個值插入到列表頭部。 若是 key 不存在,一個空列表會被建立並執行 LPUSH 操做。 當 key 存在但不是列表類型時,返回一個錯誤。
執行 LPUSH 命令後,列表的長度。
print r.lpush("1",1)  #輸出的結果是1
print r.lpush("1",1)  #輸出的結果是2
print r.lpush("1",2,3,4)  #輸出的結果是5

print r.set("2",1)   #輸出的結果是 True
print r.lpush("2",2)     #輸出的結果是 redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value,緣由是鍵 2 是字符串類型,咱們用list中的lpush給他添加元素
2. Rpush 命令用於將一個或多個值插入到列表的尾部(最右邊)。
若是列表不存在,一個空列表會被建立並執行 RPUSH 操做。 當列表存在但不是列表類型時,返回一個錯誤。
執行 RPUSH 操做後,列表的長度。
print r.rpush("2",1)     #輸出的結果是1
print r.rpush("2",2,3)   #輸出的結果是3
print r.rpush("2",4,5)   #輸出的結果是5

數據格式:          html

    

3.Blpop 命令移出並獲取列表的第一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
若是列表爲空,返回一個 None 。 不然,返回一個含有兩個元素的列表,第一個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。
print r.rpush("3",1,2,3,4,5,6,)      #輸出的結果是6
print r.blpop("3")                   #輸出的結果是('3', '1')
print r.blpop("3")                   #輸出的結果是('3', '2')
print r.blpop("3")                   #輸出的結果是('3', '3')
print r.blpop("4",timeout=2)         #由於鍵 4 不存在,因此2秒後輸出的結果是None
4.Brpop 命令移出並獲取列表的最後一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
假如在指定時間內沒有任何元素被彈出,則返回一個None 和等待時長。 反之,返回一個含有兩個元素的列表,第一個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。
print r.rpush("4",1,2,3,4,5,6,)      #輸出的結果是6
print r.brpop("4")      #輸出的結果是('4', '6')
print r.brpop("4")      #輸出的結果是('4', '5')
print r.brpop("4")      #輸出的結果是('4', '4')
print r.brpop("5",timeout=2)      #由於鍵 4 不存在,因此2秒後輸出的結果是None
5. Brpoplpush 命令從列表中彈出一個值,將彈出的元素插入到另一個列表中並返回它; 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
假如在指定時間內沒有任何元素被彈出,則返回一個 None 和等待時長。 反之,返回一個含有兩個元素的列表,第一個元素是被彈出元素的值,第二個元素是等待時長。
print r.rpush("11",1,2,3)      #輸出的結果是3
print r.rpush("22",4,5,6,)      #輸出的結果是3
print r.brpoplpush(src="11",dst="22",timeout=2)  #輸出的結果是3

print r.brpoplpush(src="44",dst="22",timeout=2)  #鍵44 不存在,輸出的結果是None

鍵 11 的值:  python

 

鍵22 的值:redis

 

 

6. Lindex 命令用於經過索引獲取列表中的元素。你也能夠使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。windows

列表中下標爲指定索引值的元素。 若是指定索引值不在列表的區間範圍內,返回 None 。
print r.rpush("6",1,2,3)      #輸出的結果是3
print r.lindex("6",1)        #輸出的結果是2
print r.lindex("6",2)        #輸出的結果是3
print r.lindex("6",3)        #輸出的結果是None
print r.lindex("6",4)        #輸出的結果是None
print r.lindex("6",-1)       #輸出的結果是3

7. Linsert 命令用於在列表的元素前或者後插入元素。學習

當指定元素不存在於列表中時,不執行任何操做。 當列表不存在時,被視爲空列表,不執行任何操做。 若是 key 不是列表類型,返回一個錯誤。
若是命令執行成功,返回插入操做完成以後,列表的長度。 若是沒有找到指定元素 ,返回 -1 。 若是 key 不存在或爲空列表,返回 0 。
print r.rpush("7",1)      #輸出的結果是1
print r.rpush("7",2)      #輸出的結果是2
print r.linsert("7","BEFORE","2",12)    #輸出的結果是2

插入後的結果是:spa

8. Llen 命令用於返回列表的長度。 若是列表 key 不存在,則 key 被解釋爲一個空列表,返回 0 。 若是 key 不是列表類型,返回一個錯誤。
print r.llen("8")       #key 不存在,輸出的結果是0
print r.rpush("8",1)    #輸出的結果是1
print r.llen("8")       #輸出的結果是1
print r.rpush("8",2,3)    #輸出的結果是3
print r.llen("8")       #輸出的結果是3
9. Lpop 命令用於移除並返回列表的第一個元素。
列表的第一個元素。 當列表 key 不存在時,返回 None 。
print r.lpop("9")       #輸出的結果是None
print r.rpush("9",1)    #輸出的結果是1
print r.rpush("9",2)    #輸出的結果是2
print r.lpop("9")       #輸出的結果是1

說明:被移除掉的是第一個值 1,  值2沒有被移除.net

10.Lpushx 將一個或多個值插入到已存在的列表頭部,列表不存在時操做無效。
print r.rpush("10",1)       #輸出的結果是1
print r.rpushx("10",2)      #輸出的結果是2
print r.rpushx("10",3)      #輸出的結果是3
print r.rpushx("11",3)      #輸出的結果是5
print r.lrange("10",0,-1)   #輸出的結果是['1', '2', '3']
print r.lrange("11",0,-1)   #輸出的結果是['1', '2', '1', '2', '3']
11.Lrange 返回列表中指定區間內的元素,區間以偏移量 START 和 END 指定。 其中 0 表示列表的第一個元素, 1 表示列表的第二個元素,以此類推。
你也能夠使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。
print r.rpush("11",1,2)       #輸出的結果是2
print r.rpush("11",3,4)       #輸出的結果是4
print r.lrange("11",0,-1)     #輸出的結果是['1', '2', '3', '4']
print r.lrange("11",1,2)      #輸出的結果是['2', '3']
12.Lrem 根據參數 COUNT 的值,移除列表中與參數 VALUE 相等的元素。
COUNT 的值能夠是如下幾種:
count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數量爲 COUNT 。
count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數量爲 COUNT 的絕對值。
count = 0 : 移除表中全部與 VALUE 相等的值。
被移除元素的數量。 列表不存在時返回 0 。
print r.rpush("12", 1)  # 輸出的結果是1
print r.rpush("12", 1)  # 輸出的結果是2
print r.rpush("12", 2)  # 輸出的結果是3
print r.rpush("12", 1)  # 輸出的結果是4
print r.lrem("12",1,-2) # 輸出的結果是2
print r.lrange("12",0,-1) # 輸出的結果是['1', '2']
13. Lset 經過索引來設置元素的值。
當索引參數超出範圍,或對一個空列表進行 LSET 時,返回一個錯誤
操做成功返回 True ,不然返回錯誤信息。
print r.rpush("13",1,2,3,4)     # 輸出的結果是4
print r.lset("13",1,5)          # 輸出的結果是True
print r.lrange("13",0,-1)       # 輸出的結果是['1', '5', '3', '4']
14. Ltrim 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間以內的元素都將被刪除。
下標 0 表示列表的第一個元素,以 1 表示列表的第二個元素,以此類推。
你也能夠使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。
print r.rpush("14",1,2,3,4)      # 輸出的結果是4
print r.ltrim("14",1,-2)         # 輸出的結果是True
print r.lrange("14",0,-1)        # 輸出的結果是['2', '3']
15. Rpop 命令用於移除並返回列表的最後一個元素。
列表的最後一個元素。 當列表不存在時,返回 None 。
print r.rpush("15",1,2,3,4)     # 輸出的結果是4
print r.rpop("15")              # 輸出的結果是4
print r.lrange("15",0,-1)       # 輸出的結果是['1', '2', '3']
16.Rpoplpush 命令用於移除列表的最後一個元素,並將該元素添加到另外一個列表並返回。
print r.rpush("16",1,2,3,4)     # 輸出的結果是4
print r.rpush("17",1,2,3,4)     # 輸出的結果是4
print r.rpoplpush("16","17")    # 輸出的結果是4
print r.lrange("16",0,-1)       # 輸出的結果是['1', '2', '3']
print r.lrange("17",0,-1)       # 輸出的結果是['4', '1', '2', '3', '4']
17.Rpushx 命令用於將一個或多個值插入到已存在的列表尾部(最右邊)。若是列表不存在,操做無效。
print r.rpushx("18",1)       # 由於鍵18 不存在,因此插入失敗,輸出的結果是0
print r.rpush("18",2)        # 輸出的結果是1
print r.rpushx("18",3)       # 輸出的結果是2
print r.lrange("18",0,-1)    # 輸出的結果是['2', '3']

redis安裝和配置(一) http://www.cnblogs.com/xuchunlin/p/6676308.htmlcode

redis學習 (key)鍵,Python操做redis 鍵 (二) http://www.cnblogs.com/xuchunlin/p/7061524.htmlhtm

Python操做redis字符串(String)詳解 (三) http://www.cnblogs.com/xuchunlin/p/7062065.htmlblog

Python操做redis系列以 哈希(Hash)命令詳解(四) http://www.cnblogs.com/xuchunlin/p/7064860.html

Python操做redis系列之 列表(list) (五) http://www.cnblogs.com/xuchunlin/p/7067154.html

Python操做redis學習系列之(集合)set,redis set詳解 (六)http://www.cnblogs.com/xuchunlin/p/7070267.html

python 操做redis之——有序集合(sorted set) (七) http://www.cnblogs.com/xuchunlin/p/7097272.html

python 操做redis之——HyperLogLog (八) http://www.cnblogs.com/xuchunlin/p/7097272.html

redis.windows.conf各項配置參數介紹 (九) http://www.cnblogs.com/xuchunlin/p/7097729.html

附錄:redis命令
命令 描述
Redis Blpop 命令 移出並獲取列表的第一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
Redis Brpop 命令 移出並獲取列表的最後一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
Redis Brpoplpush 命令 從列表中彈出一個值,將彈出的元素插入到另一個列表中並返回它; 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
Redis Lindex 命令 經過索引獲取列表中的元素
Redis Linsert 命令 在列表的元素前或者後插入元素
Redis Llen 命令 獲取列表長度
Redis Lpop 命令 移出並獲取列表的第一個元素
Redis Lpush 命令 將一個或多個值插入到列表頭部
Redis Lpushx 命令 將一個或多個值插入到已存在的列表頭部
Redis Lrange 命令 獲取列表指定範圍內的元素
Redis Lrem 命令 移除列表元素
Redis Lset 命令 經過索引設置列表元素的值
Redis Ltrim 命令 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間以內的元素都將被刪除。
Redis Rpop 命令 移除並獲取列表最後一個元素
Redis Rpoplpush 命令 移除列表的最後一個元素,並將該元素添加到另外一個列表並返回
Redis Rpush 命令 在列表中添加一個或多個值
Redis Rpushx 命令 爲已存在的列表添加值

轉自:https://www.cnblogs.com/xuchunlin/p/7067154.html

相關文章
相關標籤/搜索