列表

列表類型是用來存儲多個有序的字符串。

列表最多可以存儲

個元素。

可以 對列 表 兩端 插入( push) 和 彈出( pop), 還可以 獲取 指定範圍的元素列表、 獲取 指定索引下標的元素 等。

列表可以充當棧和隊列的角色。


列表類型的特點

  • 列表中的元素是有序的。
  • 列表中的元素是可以重複的。

命令

  • 添加操作
  1. 從右邊插入元素 rpush key value [value ...]
  2. 從左邊插入元素 lpush key value [value ...]
  3. 向某個元素前或者後插入元素 linsert key before|after pivot value
  • 查找
  1. 獲取指定範圍內的元素列表 lrange key start end
    從左到右獲取列表的所有元素 lrange key 0 -1
  2. 獲取列表指定索引下標的元素 lindex key index
  3. 獲取列表長度 llen key
  • 刪除
  1. 從列表左側彈出 lpop key
  2. 從列表右側彈出 rpop key
  3. 刪除指定元素 lrem key count value
  4. 按照索引範圍修剪列表 ltrim key start end
  • 修改
  1. 修改指定索引下標的元素 lset key index newValue
  • 阻塞操作(阻塞式彈出)
    blpop key [key ...] timeout
    brpop key [key ...] timeout

內部編碼

  • ziplist(壓縮列表)
  • linkedlist(鏈表)
  • quicklist

使用場景

  • 消息隊列
    redis的lpush + brpop 命令組合即可實現阻塞隊列。生產者+消費者
  • 文章列表
    每篇文章用哈希結構存儲
    向用戶文章列表添加文章
    分頁獲取用戶文章列表

列表口訣:

  • lpush+ lpop= Stack( 棧)
  • lpush+ rpop= Queue( 隊列)
  • lpush+ ltrim= Capped Collection( 有限集合)
  • lpush+ brpop= Message Queue( 消息隊列)

L:left(左)
R:right(右)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章