最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

redis的list數(shù)據(jù)類型相關命令介紹及使用

 更新時間:2022年01月14日 16:07:49   作者:凹凸曼藍博one  
本文主要介紹了redis的list數(shù)據(jù)類型相關命令介紹及使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

list列表簡介

  • list是簡單的字符串列表(說通俗點,存儲的還是字符串),按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊),個列表最多可以包含^32-1個元素(每個列表超過40億個元素)。
  • Redis中的list和Java中的LinkedList很像,底層都是一種鏈表結構,list的插入和刪除操作非常快,時間復雜度為 0(1),不像數(shù)組結構插入、刪除操作需要移動數(shù)據(jù)。像歸像,但是redis中的list底層可不是一個雙向鏈表那么簡單。
  • 當數(shù)據(jù)量較少的時候它的底層存儲結構為一塊連續(xù)內存,稱之為ziplist(壓縮列表),它將所有的元素緊挨著一起存儲,分配的是一塊連續(xù)的內存;當數(shù)據(jù)量較多的時候將會變成quicklist(快速鏈表)結構。
  • 可單純的鏈表也是有缺陷的,鏈表的前后指針prev和next會占用較多的內存,會比較浪費空間,而且會加重內存的碎片化。在redis 3.2之后就都改用ziplist+鏈表的混合結構,稱之為quicklist(快速鏈表)。

常用命令

添加命令

lpush key value

從左邊插入元素(將一個或多個值插入到列表頭部)

127.0.0.1:6379> lpush ids 1
(integer) 1
127.0.0.1:6379> lrange ids 0 -1
1) "1"
127.0.0.1:6379> lpush ids 2
(integer) 2
127.0.0.1:6379> lrange ids 0 -1
1) "2"
2) "1"

rpush key value

從右邊插入元素(將一個或多個值插入到列表的尾部(最右邊))

127.0.0.1:6379> rpush ids 3
(integer) 3
127.0.0.1:6379> lrange ids 0 -1
1) "2"
2) "1"
3) "3"

linsert key BEFORE|AFTER pivot value
向某個元素前/后插入元素,返回結果為當前列表長度,注意列表不存在或者指定元素不存在列表中時,都將不執(zhí)行任何操作。

//元素3前插入0
127.0.0.1:6379> linsert ids before 3 0
(integer) 4
127.0.0.1:6379> lrange ids 0 -1
1) "2"
2) "1"
3) "0"
4) "3"
//元素3后插入0
127.0.0.1:6379> linsert ids after 3 4
(integer) 5
127.0.0.1:6379> lrange ids 0 -1
1) "2"
2) "1"
3) "0"
4) "3"
5) "4"

查詢命令

lrange key start end
獲取列表中指定范圍內的元素列表;若start值大于列表end值則返回空列表
如上已經(jīng)展示過了

lindex key index
獲取列表指定索引下標的元素

127.0.0.1:6379> lindex ids 0
"2"
127.0.0.1:6379> lindex ids -1
"4"

llen key
獲取列表長度;列表不存在則返回0

127.0.0.1:6379> llen ids
(integer) 5

彈出/刪除命令

lpop key
從列表左側彈出元素并返回頭部元素

127.0.0.1:6379> lpop ids
"2"
127.0.0.1:6379> lrange ids 0 -1
1) "1"
2) "0"
3) "3"
4) "4"

rpop key
從列表右側彈出元素并返回尾部元素

127.0.0.1:6379> rpop ids
"4"
127.0.0.1:6379> lrange ids 0 -1
1) "1"
2) "0"
3) "3"

lrem key count value
從列表中找到等于value的元素進行刪除,根據(jù)count的不同分為三種情況:
count > 0,從表頭開始向表尾,移除數(shù)量為count個元素;
count < 0,從表尾開始向表頭,移除數(shù)量為count的絕對值個元素;
count = 0,移除表中所有與 value 相等的值

127.0.0.1:6379> lrem ids 0 3
(integer) 1
127.0.0.1:6379> lrange ids 0 -1
1) "1"
2) "0"

ltrim key start end
對一個列表進行修剪(trim),就是說,讓列表只保留指定區(qū)間內的元素,不在指定區(qū)間之內的元素都將被刪除

127.0.0.1:6379> ltrim ids 0 0
OK
127.0.0.1:6379> lrange ids 0 -1
1) "1"

修改命令

lset key index value
修改指定下標的元素的值設置為value

127.0.0.1:6379> lset ids 0 0
OK
127.0.0.1:6379> lrange ids 0 -1
1) "0"

阻塞彈出命令

blpop key [key …] timeout
移出并獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時(單位秒)或發(fā)現(xiàn)可彈出元素為止

brpop key [key …] timeout
移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止
演示:
開啟三個reids連接窗口,第一個執(zhí)行blpop ,第二個執(zhí)行brpop ,第三個執(zhí)行添加:
可以看到窗口1和2執(zhí)行完都已經(jīng)阻塞在這里,這是因為ids中沒有元素

在這里插入圖片描述

在這里插入圖片描述

窗口3執(zhí)行添加:lpush ids 1 2 3 4 5 6
可以看到窗口1和2立即彈出對應元素:

在這里插入圖片描述

在這里插入圖片描述

應用場景

消息隊列:lpop和rpush(或者反過來,lpush和rpop)能實現(xiàn)隊列的功能

朋友圈的點贊列表、評論列表、排行榜:lpush命令和lrange命令能實現(xiàn)最新列表的功能,每次通過lpush命令往列表里插入新的元素,然后通過lrange命令讀取最新的元素列表。

到此這篇關于redis的list數(shù)據(jù)類型相關命令介紹及使用的文章就介紹到這了,更多相關redis list數(shù)據(jù)類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Redis自增生成id的方法實踐

    Redis自增生成id的方法實踐

    在使用Redis時,常常需要用到自增ID的功能,主要介紹了Redis自增生成id的方法實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Redis 中spark參數(shù)executor-cores引起的異常解決辦法

    Redis 中spark參數(shù)executor-cores引起的異常解決辦法

    這篇文章主要介紹了Redis 中spark參數(shù)executor-cores引起的異常解決辦法的相關資料,需要的朋友可以參考下
    2017-03-03
  • muduo源碼分析之TcpServer模塊詳細介紹

    muduo源碼分析之TcpServer模塊詳細介紹

    這篇文章主要介紹了muduo源碼分析之TcpServer模塊,本文通過實例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Redis簡單動態(tài)字符串SDS的實現(xiàn)示例

    Redis簡單動態(tài)字符串SDS的實現(xiàn)示例

    Redis沒有直接復用C語言的字符串,而是新建了SDS,本文主要介紹了Redis簡單動態(tài)字符串SDS的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • SpringSession+Redis實現(xiàn)集群會話共享的方法

    SpringSession+Redis實現(xiàn)集群會話共享的方法

    為了保證WEB應用的承載能力, 需要對WEB應用進行集群處理.這篇文章主要介紹了SpringSession+Redis實現(xiàn)集群會話共享的方法,需要的朋友參考下吧
    2018-08-08
  • 在ssm項目中使用redis緩存查詢數(shù)據(jù)的方法

    在ssm項目中使用redis緩存查詢數(shù)據(jù)的方法

    本文主要簡單的使用Java代碼進行redis緩存,即在查詢的時候先在service層從redis緩存中獲取數(shù)據(jù)。如果大家對在ssm項目中使用redis緩存查詢數(shù)據(jù)的相關知識感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-03-03
  • Linux下安裝Redis 6.0.5的實現(xiàn)

    Linux下安裝Redis 6.0.5的實現(xiàn)

    本文詳細介紹了在Linux系統(tǒng)下安裝Redis 6.0.5的步驟,包括安裝準備、編譯安裝、啟動服務、設置密碼和配置文件修改等,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • Redis底層類型之json命令使用

    Redis底層類型之json命令使用

    這篇文章主要為大家介紹了Redis底層類型之json命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Redis出現(xiàn)(error)NOAUTH?Authentication?required.報錯的解決辦法(秒懂!)

    Redis出現(xiàn)(error)NOAUTH?Authentication?required.報錯的解決辦法(秒懂!)

    這篇文章主要給大家介紹了關于Redis出現(xiàn)(error)NOAUTH?Authentication?required.報錯的解決辦法,對于 這個錯誤這通常是因為Redis服務器需要密碼進行身份驗證,但客戶端沒有提供正確的身份驗證信息導致的,需要的朋友可以參考下
    2024-03-03
  • redis隊列和秒殺應用方式

    redis隊列和秒殺應用方式

    這篇文章主要介紹了redis隊列和秒殺應用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評論

普定县| 呼伦贝尔市| 宕昌县| 洛浦县| 南开区| 托克托县| 将乐县| 翁源县| 自治县| 松潘县| 梅州市| 贡嘎县| 浦县| 观塘区| 五台县| 皋兰县| 瓮安县| 和平县| 慈溪市| 历史| 靖远县| 中西区| 台南市| 惠来县| 上林县| 盘山县| 镇雄县| 东阳市| 石屏县| 南京市| 囊谦县| 儋州市| 沽源县| 新宁县| 屏东县| 弋阳县| 临夏县| 剑河县| 衡南县| 景宁| 南澳县|