Redis中List類型的常用命令
注:本文基于Linux系統(tǒng)上Redis v5.0.7進行講解
1.lindex
命令用于通過索引獲取列表中的元素;
你也可以使用負數(shù)下標(biāo),以 -1 表示列表的最后一個元素, -2 表示列表的倒數(shù)第二個元素,以此類推;
返回列表中下標(biāo)為指定索引值的元素;
如果指定索引值不在列表的區(qū)間范圍內(nèi),返回 nil
LINDEX KEY_NAME INDEX_POSITION
2.rpoplpush
用于移除列表的最后一個元素,并將該元素添加到另一個列表的首部;
返回被彈出的元素;
如果指定要移除的列表不存在,則返回nil;
如果“另一個列表不存在”,則新創(chuàng)建一個
RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME
3.blpop
命令移出并獲取列表的第一個元素,;
如果列表沒有元素會阻塞列表直到等待超過timeout時或發(fā)現(xiàn)可彈出元素為止,timeout單位是秒,;
超時后,說明列表為空,返回一個 nil跟時間 ;
沒有超時,說明列表不為空,返回一個含有兩個元素的列表,第一個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。
注:TIMEOUT是必須要填的,不是選填
BLPOP LIST1 LIST2 .. LISTN TIMEOUT
在以上實例中,操作會被阻塞,在等待20秒后會返回 nil
4.brpop
命令移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止
BRPOP LIST1 LIST2 .. LISTN TIMEOUT
5.brpoplpush
命令從列表中彈出一個值,將彈出的元素插入到另外一個列表中并返回它; 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止;
假如在指定時間內(nèi)沒有任何元素被彈出,則返回一個 nil 和等待時長;
反之,返回一個含有兩個元素的列表,第一個元素是被彈出元素的值,第二個元素是等待時長(注意:如果時間短立馬可以獲得到的話,只會返回一個元素即被彈出元素的值)
BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT
6.lrem
根據(jù)參數(shù) COUNT 的值,移除列表中與參數(shù) VALUE 相等的元素;
COUNT 的值可以是以下幾種:
count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數(shù)量為 COUNT
count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數(shù)量為 COUNT 的絕對值
count = 0 : 移除表中所有與 VALUE 相等的值
返回被移除元素的數(shù)量, 列表不存在時或者表中沒有相同元素時返回 0
REM KEY_NAME COUNT VALUE
7.ltrim
一個列表進行修剪(trim),就是說,讓列表只保留指定區(qū)間內(nèi)的元素,不在指定區(qū)間之內(nèi)的元素都將被刪除;
下標(biāo) 0 表示列表的第一個元素,以 1 表示列表的第二個元素,以此類推;
你也可以使用負數(shù)下標(biāo),以 -1 表示列表的最后一個元素, -2 表示列表的倒數(shù)第二個元素,以此類推;
命令執(zhí)行成功時,返回 ok
LTRIM KEY_NAME START STOP
8.lpushx
將一個或多個值插入到已存在的列表頭部,列表不存在時操作無效;
返回LPUSHX 命令執(zhí)行之后,列表的新長度;
列表不存在時或者對已經(jīng)沒有元素的列表操作時返回0
LPUSHX KEY_NAME VALUE1.. VALUEN
9.linsert
命令用于在列表的元素前或者后插入元素。;
當(dāng)指定元素不存在于列表中時,不執(zhí)行任何操作;
當(dāng)列表不存在時,被視為空列表,不執(zhí)行任何操作;
如果 key 不是列表類型,返回一個錯誤;
如果命令執(zhí)行成功,返回插入操作完成之后,列表的新長度;
如果沒有找到指定元素 ,返回 -1 ;
如果 key 不存在或為空列表,返回 0
LINSERT KEY_NAME BEFORE EXISTING_VALUE NEW_VALUE
10.lset
通過索引來設(shè)置元素的值;
操作成功返回 ok ;
當(dāng)索引參數(shù)超出范圍,返回一個錯誤;
對一個空列表進行 LSET 時或者key不存在時返回錯誤信息
LSET KEY_NAME INDEX VALUE
11.rpushx
將一個或多個值插入到已存在的列表尾部(最右邊);
執(zhí)行 Rpushx 操作后,列表的新長度;
如果列表不存在,操作無效
RPUSHX KEY_NAME VALUE1..VALUEN
12.llen
命令用于返回列表的長度;
如果列表 key 不存在,則 key 被解釋為一個空列表,返回 0 ;
如果 key 不是列表類型,返回一個錯誤
LLEN KEY_NAME
到此這篇關(guān)于Redis中List命令的實現(xiàn)的文章就介紹到這了,更多相關(guān)Redis List命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入了解Redis連接數(shù)問題的現(xiàn)象和解法
一般情況?Redis?連接數(shù)問題并不常見,但是當(dāng)你業(yè)務(wù)服務(wù)增加、對?Redis?的依賴持續(xù)增強的過程中,可能會遇到很多?Redis?的問題,這個時候,Redis?連接數(shù)可能就成了一個常見的問題,在本章節(jié),希望能夠帶大家了解Redis連接數(shù)問題的現(xiàn)象和解法,需要的朋友可以參考下2023-12-12詳解redis在服務(wù)器linux下啟動的相關(guān)命令(安裝和配置)
這篇文章主要介紹了redis在服務(wù)器linux下的啟動的相關(guān)命令(安裝和配置),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08Redis Key的數(shù)量上限及優(yōu)化策略分享
Redis 作為高性能的鍵值存儲數(shù)據(jù)庫,廣泛應(yīng)用于緩存、會話存儲、排行榜等場景,但在實際使用中,開發(fā)者常常會關(guān)心一個問題:Redis 的 Key 數(shù)量是否有上限?本文將從 Redis Key 的理論上限 出發(fā),深入探討 Redis Key 的管理策略,需要的朋友可以參考下2025-03-03