日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Redis 中 List(列表)類型的命令及詳解

作者:全職程序猿 更新時(shí)間: 2023-07-03 編程語言

1.BLPOP

? ? ? ? Redis BLPOP 命令移出并獲取列表的第一個(gè)元素,如果列表沒有元素會(huì)阻塞列表知道等待超時(shí)或發(fā)現(xiàn)可彈出元素為止,它是LPOP的阻塞元素。

當(dāng)給定多個(gè)key參數(shù)時(shí)按參數(shù)key的先后順序依次檢查各個(gè)列表,彈出第一個(gè)非空列表的非空元素。

語法:

?redis Blpop 命令基本語法如下:

redis 127.0.0.1:6379> BLPOP key [key ...] timeout

2. BRPOP

? ? ? ? BRPOP是阻塞列表的移除原語。從給的列表參數(shù)中按順序檢查第一個(gè)不空的列表,然后從該列表的尾部移除元素。?BRPOP?是?RPOP?的阻塞版本,因?yàn)楫?dāng)沒有元素從給定的列表中移除的時(shí)候,BRPOP?阻塞連接。

返回值

數(shù)組?:

  • 所有列表為空并且超時(shí)時(shí),返回?nil?。
  • 一個(gè)兩個(gè)成員的數(shù)組,第一個(gè)元素是被移除元素的key的名字,第二個(gè)元素是被移除元素的值。

3. BRPOPLPUSH

????????Redis?BRPOPLPUSH?命令從列表中取出最后一個(gè)元素,并插入到另外一個(gè)列表的頭部; 如果列表沒有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止。

BRPOPLPUSH?是?RPOPLPUSH的阻塞版本,當(dāng)給定列表?source?不為空時(shí),?BRPOPLPUSH的表現(xiàn)和?RPOPLPUSH?一樣。

語法:

redis?BRPOPLPUSH?命令基本語法如下:

redis 127.0.0.1:6379> BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT 

4.LINDEX

????????LINDEX?返回列表 key 里索引 index 位置存儲(chǔ)的元素。 index 下標(biāo)是從 0 開始索引的,所以 0 是表示第一個(gè)元素, 1 表示第二個(gè)元素,并以此類推。 負(fù)數(shù)索引用于指定從列表尾部開始索引的元素,在這種方法下,-1 表示最后一個(gè)元素,-2 表示倒數(shù)第二個(gè)元素,并以此往前推。

當(dāng) key 值不是列表的時(shí)候,會(huì)返回錯(cuò)誤。

返回值

多行字符串????????多行字符串多行字符串: 查詢的元素,index?超出索引范圍時(shí)返回?nil?。

5.LINSERT

????????Redis?LINSERT?用于把?element?插入到列表?key?中參考值 pivot 的前面或后面。

當(dāng)?key?不存在時(shí),這個(gè)list會(huì)被看作是空list,什么都不執(zhí)行。

當(dāng)?key?存在,值不是列表類型時(shí),返回錯(cuò)誤。

返回值

????????整數(shù): 執(zhí)行操作后的列表長度,列表中pivot參考值不存在的時(shí)候返回?-1

6.LLEN

????????Redis?LLEN?用于返回存儲(chǔ)在?key?中的列表長度。 如果?key?不存在,則?key?被解釋為一個(gè)空列表,返回?0?。 如果?key?不是列表類型,返回一個(gè)錯(cuò)誤。

語法

????????redis?LLEN?命令基本語法如下:

redis 127.0.0.1:6379> LLEN KEY_NAME 

返回值

????????整數(shù): 列表的長度。

7.LPOP

????????Redis?LPOP?命令用于刪除并返回存儲(chǔ)在?key?中的列表的第一個(gè)元素。

返回值

????????多行字符串: 列表的首元素,key?不存在的時(shí)候返回?nil?

8.LPUSH

????????redis?LPUSH?用于將一個(gè)或多個(gè)值插入到列表key?的頭部。

如果 key 不存在,那么在進(jìn)行 push 操作前會(huì)創(chuàng)建一個(gè)空列表。

如果 key 對(duì)應(yīng)的值不是 list 類型,那么會(huì)返回一個(gè)錯(cuò)誤。

可以使用一個(gè)命令把多個(gè)元素 push 進(jìn)入列表,只需在命令末尾加上多個(gè)指定的參數(shù)。

元素按在參數(shù)中出現(xiàn)的順序,從左到右依次插入到 list 的頭部。

所以對(duì)于這個(gè)命令例子?LPUSH mylist a b c,返回的列表是 c 為第一個(gè)元素, b 為第二個(gè)元素, a 為第三個(gè)元素。

返回值

????????整數(shù): 執(zhí)行push操作后列表的長度。

9.LPUSHX

????????Redis?LPUSHX?在當(dāng) key 存在并且存儲(chǔ)著一個(gè) list 類型值的時(shí)候,向值 list 的頭部插入 value。 與 LPUSH 相反,當(dāng) key 不存在的時(shí)候不會(huì)進(jìn)行任何操作。

返回值

????????整數(shù): 執(zhí)行push操作后列表list的長度。

10.LREM

????????Redis?LREM?用于從列表 key 中刪除前 count 個(gè)值等于?element?的元素。 這個(gè) count 參數(shù)通過下面幾種方式影響這個(gè)操作:

  • count > 0: 從頭到尾刪除值為 value 的元素。
  • count < 0: 從尾到頭刪除值為 value 的元素。
  • count = 0: 移除所有值為 value 的元素。

比如, LREM list -2 “hello” 會(huì)從列表key中刪除最后兩個(gè)出現(xiàn)的 “hello”。

需要注意的是,不存在key會(huì)被當(dāng)作空list處理,所以當(dāng) key 不存在的時(shí)候,這個(gè)命令會(huì)返回 0。

返回值

????????整數(shù): 刪除元素個(gè)數(shù).

11.LSET

????????Redis?LSET?用于設(shè)置列表 key 中 index 位置的元素值為?element。 更多關(guān)于 index 參數(shù)的信息,詳見?LINDEX。

當(dāng) index 超出列表索引范圍時(shí)會(huì)返回錯(cuò)誤ERR ERR index out of range

返回值

字符串

12.RPOP?

????????Redis RPOP 用于移除并返回列表?key?的最后一個(gè)元素。

返回值

多行字符串: 最后一個(gè)元素的值,key?不存在時(shí)返回?nil?。

13.RPUSH

????????RPUSH?向存存儲(chǔ)在 key 中的列表的尾部插入所有指定的值。如果 key 不存在,那么會(huì)創(chuàng)建一個(gè)空的列表然后再進(jìn)行 push 操作。 當(dāng) key 保存的不是列表,那么會(huì)返回一個(gè)錯(cuò)誤。

可以使用RPUSH命令把多個(gè)元素插入隊(duì)列,只需要在命令后面指定多個(gè)參數(shù)。元素是從左到右按序從列表尾部插入。 比如命令?RPUSH mylist a b c?會(huì)返回一個(gè)列表,其第一個(gè)元素是 a ,第二個(gè)元素是 b ,第三個(gè)元素是 c。

返回值

????????整數(shù): 執(zhí)行 push 操作后的列表長度。

14.RPUSHX

????????RPUSHX將值 value 插入到列表?key?的表尾, 當(dāng)且僅當(dāng)?key?存在并且是一個(gè)列表。 和?RPUSH命令相反, 當(dāng) key 不存在時(shí),RPUSHX?命令什么也不做。

返回值

????????整數(shù): RPUSHX 命令執(zhí)行之后列表的長度。

原文鏈接:https://blog.csdn.net/nh2r1114/article/details/129922083

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新