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

數據格式:          

    

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 的值:  

 

鍵22 的值:

 

 

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

列表中下標為指定索引值的元素。 如果指定索引值不在列表的區間范圍內,返回 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

插入后的結果是:

 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沒有被移除

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.html

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

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

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

 


免責聲明!

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



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