1. 程式人生 > >redis列表(list)命令

redis列表(list)命令

redis中list可以插入可以重複的資料,資料呈現順序排列。

list列表命令

1、blpop命令-移出並獲取列表的第一個元素。
redis中blpop用於移出並獲取列表的第一個元素,如果列表沒有元素會等待到超時或發現可彈出元素為止。如果timeout為0其列表中沒資料則會一直等待。
語法:

blpop list1 list2 ... listN timeout

版本:2.2.0及以上
返回值:
如果列表內容為空,返回一個nil。否則返回一個被彈出元素所屬的key,第二個是被彈出元素的value。
eg:

127.0.0.1:6379> lpush list 100
(integer
) 1 127.0.0.1:6379> blpop list 100 1) "list" 2) "100" 127.0.0.1:6379> blpop list 100 1) "list" 2) "100" (33.19s) 127.0.0.1:6379> blpop list 1 (nil) (1.08s)

2、brpop命令-移出並獲取列表最後一個元素。
redis中brpop命令用於移出並獲取列表的最後一個元素,如果列表中沒有元素會阻塞命令直到等待超時,如果timeout設定為0,則如果列表沒有返回資料,命令一直阻塞。
語法:

brpop list1 list2 ... listn  timeout

版本:2.0.0及以上
返回值:加入在指定時間內沒有任何元素被彈出,則返回一個nil和等待時長。反之,返回一個被彈出的列表名和對應的值。
例子和blpop一致。

3、brpoplpush命令-從一個列表中彈出元素後將彈出的元素插入到另外一個列表
redis中brpoplpush命令從列表中彈出一個值,將彈出元素插入到另外一個列表中並返回它;如果列表沒有元素會阻塞命令,直到等待超時或發現可談出元素為止。
語法:

brpoplpush list1 anotherlist timeout

版本:2.0.0
返回值:如果在指定時間內沒有任何元素被彈出,則返回一個nil和等待時長。反之,返回彈出元素的值和等待時長。

4、lindex命令-通過索引獲取列表中的元素。
redis中lindex命令用於通過索引獲取列表中的元素。也可以使用負數下標,以-1表示最後一個元素,以此類推。
語法:

lindex keyname index

版本:1.0.0
返回值:列表中下標為指定索引值的元素。如果指定索引值不在列表的區間範圍內,返回nil。
eg:

redis 127.0.0.1:6379> LPUSH mylist "World"
(integer) 1

redis 127.0.0.1:6379> LPUSH mylist "Hello"
(integer) 2

redis 127.0.0.1:6379> LINDEX mylist 0
"Hello"

redis 127.0.0.1:6379> LINDEX mylist -1
"World"

redis 127.0.0.1:6379> LINDEX mylist 3        # index不在 mylist 的區間範圍內
(nil)

5、linsert命令-在列表的元素前或者後面插入新元素
redis中linset命令用於在列表元素前或者後面插入元素。當指定元素不存在於列表中時,不執行任何操作。當列表不存在時,被視為空列表,不執行任何操作。如果key不是列表型別,返回一個錯誤。
語法:

linsert keyname before existingvalue newvalue

版本:1.0.0
返回值:如果命令執行成功,返回插入操作完成後,列表的長度。如果沒有找到指定元素,返回-1。如果key不存在或為空列表,返回0。
eg:

redis 127.0.0.1:6379> RPUSH list1 "foo"
(integer) 1
redis 127.0.0.1:6379> RPUSH list1 "bar"
(integer) 2
redis 127.0.0.1:6379> LINSERT list1 BEFORE "bar" "Yes"
(integer) 3
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "foo"
2) "Yes"
3) "bar"

6、llen命令-獲取列表長度
redis中llen命令用於獲取列表的長度。如果列表key不存在,則key被解釋為一個空列表,返回0。如果key不是列表型別,返回一個錯誤。
語法

llen keyname

版本:1.0.0及以上
返回值:列表的長度。
eg:

127.0.0.1:6379> llen list
(integer) 0
127.0.0.1:6379> rpush list "foo"
(integer) 1
127.0.0.1:6379> llen list
(integer) 1
127.0.0.1:6379>

7、lpop命令-移出並獲取列表的第一個元素
redis中lpop命令用於移除並返回列表的第一個元素。
語法:

llen keyname

版本:1.0.0及以上
返回值:列表的第一個元素。當列表key不存在時,返回nil。
eg:

redis 127.0.0.1:6379> RPUSH list1 "foo"
(integer) 1
redis 127.0.0.1:6379> RPUSH list1 "bar"
(integer) 2
redis 127.0.0.1:6379> LPOP list1
"foo"

8、lpush命令-將一個或多個值從插入到列表頭部
redis中lpush命令將一個或多個值插入到列表頭部。如果key不存在,一個空列表會被建立並執行lpush操作。當key存在但不是列表型別時,返回一個錯誤。
注意:在2。4版本及以前的lpush命令,都只接受單個value值。
語法:

lpush keyname value1 ... valuen

版本:1.0.0及以上
返回值:執行lpush後,列表的長度。
eg:

redis 127.0.0.1:6379> LPUSH list1 "foo"
(integer) 1
redis 127.0.0.1:6379> LPUSH list1 "bar"
(integer) 2
redis 127.0.0.1:6379> LRANGE list1 0 -1
1) "foo"
2) "bar

9、lpushx命令-將一個或多個值插入到已經存在的列表。
redis中lpushx將一個或多個值插入到已存在的列表頭,列表不存在是操作無效。
語法

lpushx keyname value1 value2 ... valuen

版本:2.2.0及以上
返回值:lpush執行後列表的長度。

10、lrange命令-獲取列表指定範圍內的元素
redis中lrange命令返回列表指定區間的元素,區間以便宜量start和end指定。其中0表示列表的第一個元素。-1表示列表最後一個元素。依次類推。
語法:

lrange keyname start end

版本:1.0.0
返回值:
一個列表,包含指定區間的元素。
eg:

redis 127.0.0.1:6379> LPUSH list1 "foo"
(integer) 1
redis 127.0.0.1:6379> LPUSH list1 "bar"
(integer) 2
redis 127.0.0.1:6379> LPUSHX list1 "bar"
(integer) 0
redis 127.0.0.1:6379> LRANGE list1 0 -1
1) "foo"
2) "bar"
3) "bar"

11、lrem命令-移除列表元素
redis中lrem根據引數count移除列表終於value相等的元素。
count值可以是以下幾種:
大於0:從表頭向尾搜尋,移除和 value相等的元素,數量為count
小於0:從表尾向頭搜尋,移除和 value相等的元素,數量為count
等於0:移除表中所有與value相等的值。
語法:

lrem keyname count value

版本:1.0.0
返回值:
被移除元素的數量。列表不存在時返回。
eg:

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 3
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 4
redis 127.0.0.1:6379> LREM mylist -2 "hello"
(integer) 2

12、lset命令-通過索引設定列表元素的值
redis中lset命令通過索引來設定元素的值。
當索引引數超出範圍,或對一個空列表進行lset時,返回一個錯誤。
語法:

lset keyname index value

版本:1.0.0及以上
返回值:操作成功返回Ok,否則返回錯誤資訊。
eg:

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 3
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 4
redis 127.0.0.1:6379> LSET mylist 0 "bar"
OK
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1: "bar"
2) "hello"
3) "foo"
4) "hello"

13、ltrim命令-對一個列表進行修剪
redis中ltrim命令對一個列表進行修剪,讓列表值保留指定區間內的元素,不在指定區間之內的元素都將被刪除。下標為0表示列表的第一個元素,1表示列表的第二個元素。-1表示列表的最後一個元素,-2表示列表的倒數第二個元素,以此類推。
語法:

ltrim keyname start end

版本:1.0.0及以上
返回值:執行命令成功時返回ok
eg:

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 3
redis 127.0.0.1:6379> RPUSH mylist "bar"
(integer) 4
redis 127.0.0.1:6379> LTRIM mylist 1 -1
OK
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"
3) "bar"

14、rpop命令-移除並獲取列表最後一個元素
redis中rpop命令用於移除並返回列表的最後一個元素。
語法:

rpop keyname

版本:1.0.0及以上
返回值:列表的最後一個元素。當列表不存在時,返回nil
eg

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 3
redis 127.0.0.1:6379> RPUSH mylist "bar"
(integer) 4
redis 127.0.0.1:6379> RPOP mylist
OK
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "hello"
3) "foo"

15、rpoplpush命令-移除列表的最後一個元素,並將該元素新增到另一個列表並返回。
redis中poplpush命令移除列表的最後一個元素,並將該元素新增到另一個列表並返回。是個非阻塞命令。
語法:

rpoplpush sourcekeyname dstkeyname

版本:1.0.0及以上
返回值:被彈出的元素。
eg:

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "bar"
(integer) 3
redis 127.0.0.1:6379> RPOPLPUSH mylist myotherlist
"bar"
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"

16、rpush命令-在列表中新增一個或者多個值
redis中rpush用於將一個或者多個值插入到類別的尾部。
如果列表不存在,一個空列表會被建立並執行rpush操作。當列表存在但不是列表型別時,返回一個錯誤。
注意:在redis2.4版本以前rpush命令,都只接受單value值。
語法

rpush keyname value1 ... valuen

版本:1.0.0及以上
返回值:執行rpush操作後,列表的長度。
eg:

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 2
redis 127.0.0.1:6379> RPUSH mylist "bar"
(integer) 3
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"
3) "bar"

17、rpushx命令-為已存在的列表新增值
redis中rpushx命令用於將一個或多個值插入到已存在的列表尾部。如果列表不存在,操作無效。
語法

rpushx keyname value1 ... valuen

版本:2.2.0及以上
返回值:執行rpushx操作後,列表的長度。
eg

redis 127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
redis 127.0.0.1:6379> RPUSH mylist "foo"
(integer) 2
redis 127.0.0.1:6379> RPUSHX mylist2 "bar"
(integer) 0
redis 127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"

相關推薦

redis列表list命令

redis中list可以插入可以重複的資料,資料呈現順序排列。 list列表命令 1、blpop命令-移出並獲取列表的第一個元素。 redis中blpop用於移出並獲取列表的第一個元素,如果列表沒有元素會等待到超時或發現可彈出元素為止。如果timeou

redis學習-列表list常用命令

range 全部 redis學習 dex 圖片 沒有 push 常用 image lpush:從列表左側頭部添加數據 rpush:從右側尾部添加數據 lpop:從給左側頭部取出一個元素 rpop:從右側尾部取出一個元素 lrange:取出指定範圍的元

Redis儲存結構之列表List

訊息佇列  Redis列表只是字串列表,按插入順序排序。您可以向Redis列表的頭部或尾部新增元素。  常用的方法有:lpush、rpush、lpop、rpop、blpop、brpop、lrange BLPOP BRPOP BRPOPLPUSH LINDEX LINSE

列表list的增、刪、改、查。range自定義數組。1.24日

次數 += int pan adb lex col play digi join # s=‘alexwusir‘ # print(‘*‘.join(s)) # 輸出:a*l*e*x*w*u*s*i*r View Code 計算用戶輸入的有多少整數?

python列表list

出現的次數 insert span 方法 log gpo margin 移除 ins 列表list 表示方法: list_1=[“luo”,"gu",2,5,6] 在一個列表中,可以是字符串,數字或混合型的 一、對於列表操作有以下函數: #1、cmp(list1,list2

python2.7入門---列表List

eve for 轉換 內容 spa 訪問 末尾 uno after 序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。Python有6個序列的內置類型,但最常見的是列表和元組。序列都

Python3學習筆記-列表list

ray trace 默認 indexer pan rec strong 不存在 mov Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。 註:列表、list、數組、array 是一個東西,只是叫法不一樣 列表的索引(

Python基礎--列表List

列表 list 1.列表list定義 list=[‘張三‘,‘李四‘,123] 2.訪問列表中的值 print(list[0]) >>:張三 print(list[0:2]) >>:[‘張三‘,‘李四‘] 3.添加元素append(),insert()3.1 append()

python列表list的使用技巧及高級操作

article %d csdn 浪費 都是 轉換 n) 返回 分類 python列表(list)的使用技巧及高級操作置頂 2018年03月25日 13:39:41 頑劣的石頭 閱讀數:5478 標簽: python extend bisect list enumerate

Python3 列表List

List(列表) List(列表) 是 Python 中使用最頻繁的資料型別。 列表可以完成大多數集合類的資料結構實現。列表中元素的型別可以不相同,它支援數字,字串甚至可以包含列表(所謂巢狀)。 列表是寫在方括號 [] 之間、用逗號分隔開的元素列表。 和字串一樣,列表同樣可以被索引和擷取

python列表list的使用技巧及高階操作

python列表(list)的使用技巧及高階操作置頂 2018年03月25日 13:39:41 頑劣的石頭 閱讀數:5478 標籤: python extend bisect list enumerate 更多個人分類: python資料分析 Python版權宣告:本文為博主原創文章,未經博主允許不得轉載。

python基礎:元組tuple列表list介紹

一,元組 1.元組的建立(可以把元組看作一個容器,任何資料型別都可以放在裡面)通過賦值方法建立元組In [5]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},) In [6]: type(t)Out[6]: tuple In [7]: t = (1) I

python分割列表list的方法示例

在日常開發中,有些API介面會限制請求的元素個數,這時就需要把一個大列表分割為固定的小列表,再進行相關處理,本文蒐集了幾個簡單的方法,分享出來供大家參考學習,下面來看看詳細的介紹: 方法示例 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14

第五節----列表list

5.1  設值         LPUSH   ListName   Value         Lpush 命令將一個或多個值插入到列表頭部。

Python中去除列表list中重複項的2種方式

方式一、轉換為集合再轉換為列表 list1=[11,22,11,22,33,44,55,55,66] print(list1) print(list(set(list1))) #輸出結果 #[11, 22, 11, 22, 33, 44, 55, 55, 66] #[33, 66, 11

python 列表list

字串可以修改嗎? s = “123456789” 字串是不可變物件,屬於序列。可以使用索引訪問,索引可以是整數,也可以是負數,支援切片訪問等。列表也是Python內建的一種資料結構,屬於序列。 一、列表 1、列表定義   1)列表是python的一個內建資料結構

python 元組(tuple)和列表list區別

一、前言 想必大家都知道,在Python資料型別中有兩個物件:元組 tuple 和列表 list 。 它們的寫法和用法都十分相似,傻傻分不清楚。可能有的同學就會瘋狂的去網上查詢它們之間的區別了,可是查到的無外乎有以下幾種說法: list 是可變的物件,元組 tuple 是不可變的物件

python中的資料型別——列表list

數值型別:int (long) float 布林型 字串 列表(list) python2中(int long): python3中(int): 列表的定義 C語言中陣列:儲存同一種資料型別的集和 scores=[1,2,33,44] 列表(打了激素的陣列):可以

列表list的資料寫到csv 裡面+ 讀取csv檔案裡面的資料並寫到列表list裡面

將列表(list)的資料寫到csv 裡面 import pandas as pd file_path = 'file_path' image_id = [397133, 37777, 252219, 87038] name=['imageid'] test=pd.DataFrame(col

Python--列表list、元組(tuple)、字典dict 詳細介紹1

在此中介紹列表(list)、元組(tuple)、字典(dict)的使用方法 檢視方法:Ctrl+Q ( 關鍵字、函式和方法的特點和區別: 關鍵字 是Python內建的、具有特殊意義的識別符號   (關鍵字後面不需要使用括號) 函式  封裝了獨立功能,可以直接呼叫