Redis從入門到深入-List的value
阿新 • • 發佈:2020-07-27
1. list型別
1.1 List型別
- 資料儲存需求:儲存多個數據,並對資料進入儲存空間的順序進行區分
- 需要的儲存結構:一個儲存空間儲存多個數據,且通過資料可以體現進入順序
- list型別:儲存多個數據,底層使用雙向連結串列儲存結構實現
1.2 list型別資料基本操作
- 新增/修改資料
lpush <key> <value1> [value2]...
rpush <key> <value1> [value2]...
- 獲取資料
lrange <key> <start> <stop> lindex <key> <index> llen <key>
- 獲取並移除資料
lpop <key>
rpop <key>
- 規定時間內獲取並移除資料
blpop <key1> [key2] ... <timeout>
brpop <key1> [key2] ... <timeout>
- 移除指定資料
lrem <key> <count> <value>
1.3 list型別資料操作注意事項
- list儲存的資料都是string型別的,資料總容量是有限的,最多2^32-1個元素
- list具有索引的概念,但是操作資料時通常以佇列的形式進行入隊出隊操作,或以棧的形式進行入棧出棧操作
- 獲取全部資料操作結束索引設定為-1
- list可以對資料進行分頁操作,通常第一頁的資訊來自list,第2頁及更多的資訊通過資料庫的形式載入
1.4 list型別應用場景
- 業務場景
twitter、新浪微博、騰訊微博中個人使用者的關注列表需要按照使用者的關注順序進行展示,粉絲列表需要將最近關注的粉絲列在前面
新聞、資訊類網站如何將最新的新聞或者諮詢按照發生的時間順序展示?
企業運營過程中,系統將產生出大量的運營資料,如何保障多臺伺服器操作日誌的統一順序輸出
- 解決方案
- 依賴list的資料具有順序性的特徵對資訊進行管理
- 使用佇列模型解決多路資訊彙總合併的問題
- 使用棧模型解決最新訊息的問題