Redis應用(四)---list類型運用

概述

redis中的list類型可以存儲一個有序的字符串列表。
它是一個雙向鏈表,常用的操作是向列表兩端添加元素。

適用場景

鏈表可以非常快速地獲取兩端的元素,如獲取排行榜數據;網站新鮮事;數據分頁設計等。
還能作爲消息隊列使用,但是不推薦使用,因爲當前已經有很成熟的消息隊列產品如rocketMq,kafka,activeMq等。redis的list不是專門爲消息隊列設置的,其中有很多限制。

命令

1.向隊列兩端添加元素
lpush key value[value …]:向隊列左邊添加元素,返回值表示添加元素後的列表長度。
rpush key value[value …]:向隊列右邊添加元素,返回值表示添加元素後的列表長度。
lrange key start stop :獲取列表片段
lrange key 0 -1:獲取整個列表
在這裏插入圖片描述
從返回值中可以看出lpush和rpush的區別:頭插和尾插

2.刪除列表中指定的值
lrem key count value
刪除列表中前count個值爲value的元素,返回值是實際刪除的元素個數。
根據count的值不同lrem有不同的操作

  • count>0 :從列表左邊開始刪除前count個值爲value的元素
  • count<0 :從列表右邊開始刪除前count個值爲value的元素
  • count=0 :刪除所有值爲value的元素
    在這裏插入圖片描述
    從右邊刪除第一個值爲2的元素
    在這裏插入圖片描述
    3.獲取指定索引位置的元素值
    lindex key index
  • index>=0 :從左邊開始計算索引(第一個索引值是0)
  • index<0 :從右邊開始計算索引 (最右邊的索引值是-1)
    在這裏插入圖片描述
    4.爲指定位置的元素賦值
    lset key index value
    在這裏插入圖片描述
    5.保留列表指定位置的值
    ltrim key start end
    ltrim 常和lpush命令一起使用來限制列表中的元素,比如我們希望列表中只保留最新的100條日誌。
    在這裏插入圖片描述
    6.在列表中插入元素
    linsert key before|after pivot value
    該命令會先從列表左邊開始遍歷查找值爲pivot的元素,然後根據參數before或after來決定value插入該元素之前還是之後
    在這裏插入圖片描述
    7.將元素從一個列表轉到另一個列表
    rpoplpush source destination
    該命令會先從source列表中取出最右邊的一個元素,然後加入到destination列表的左邊,並返回這個元素的值,整個過程是原子的。
    當source和destination是同一個元素時,該命令會不斷地將隊尾的元素轉移到隊首。
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章