list型別
- 資料儲存需求:儲存多個資料,並對資料進入儲存空間的順序進行區分
- 需要的儲存結構:一個儲存空間儲存多個資料,且透過資料可以體現進入順序
- list型別:儲存多個資料,底層使用雙向連結串列儲存結構實現
list型別資料基本操作
- 新增/修改資料
//左push lpush key value1 [value2] ... //右push rpush key value1 [value2] ...
- 獲取資料
lrange key start stop lindex key index llen key
- 獲取並移除資料
//左邊移除一位 lpop key //右邊移除一位 rpop key
list型別資料擴充套件操作
- 規定時間內獲取並移除資料
blpop key1 [key2] timeout brpop key1 [key2] timeout
業務場景
微信朋友圈點贊,要求按照點贊順序顯示點贊好友資訊
如果取消點贊,移除對應好友資訊
解決方案
- 移除指定資料
Tips1:lrem key count value
- redis應用於具有操作先後順序的資料控制
list型別資料操作注意事項
- list中儲存的資料都是string型別的,資料總容量是有限的,最多2^32-1個元素。
- list具有索引的概念,但是運算元據時通常以佇列的形式進行入隊出隊操作,或以棧的形式進行入棧出棧操作。
- 獲取全部資料操作結束索引設定為-1。
- list可以對資料進行分頁操作,通常第一頁的資訊來自於list,第二頁及更多的資訊透過資料庫的形式載入。
業務場景
新浪微博個人使用者的關注列表需要按照使用者關注順序進行展示,粉絲列表需要將最近關注的粉絲顯示在列表前面
新聞 資訊類網站如何將最新的新聞或諮詢按照發生的時間順序展示?
企業運營過程中,系統將產生大量的運營資料,如何保障多臺伺服器操作日誌的統一順序輸出?
- 依賴list的資料具有順序的特徵對資訊進行管理
- 使用佇列模型解決多路資訊彙總合併的問題
- 使用棧模型解決最新訊息的問題
Tips2:
- redis應用於最新訊息展示
本作品採用《CC 協議》,轉載必須註明作者和本文連結