5.List鏈表類型介紹和操作


數據類型List鏈表

(1)介紹

list類型其實就是一個雙向鏈表。通過push,pop操作從鏈表的頭部或者尾部添加刪除元素。
這使得list既可以用作棧,也可以用作隊列。

該list鏈表類型應用場景:

獲得最新的10個登錄用戶信息:select * from user order by logintime desc limit 10;

以上sql語句可以實現用戶需求,但是數據多的時候,全部數據都要受到影響,對數據庫的
負載比較高。必要情況還需要給關鍵字段(id或logintime)設置索引,索引也比較耗費系統
資源。

如果通過list鏈表實現以上功能,可以在list鏈表中只保留最新的10個數據,每進來一個新
數據就刪除一個舊數據。每次就可以從鏈表中直接獲得需要的數據。極大節省各方面資源消耗。

(2)操作指令

lpush key string         在key對應list的頭部添加字符串元素
lpop key                 從list的頭部刪除元素,並返回刪除元素
rpush key string         在key對應list的尾部添加字符串元素
rpop key                 從list的尾部刪除元素,並返回刪除元素
llen key 返回 key        對應list的長度,key不存在返回0,如果key對應類型不是list返回錯誤
lrange key start end     返回指定區間內的元素,下標從0開始
ltrim key start          截取list,保留指定區間內元素


實踐:
通過list鏈表保存登錄系統的最新的5個用戶信息:

 



例子數據
jim    xiaoli    jack    xiaoming    linken    mary    tom
注:tom是第六個,我們先存5個,當第六個出現的時候,我們看看結果會不會改變。


1.設置一個list鏈表key newlogin,內部有5個元素:

2.當第六個用戶tom進來的時候,我們要將尾部的元素(其實就是jim)刪除


該鏈表每增加一個新元素,就刪除一個舊元素


3.我們使用lrange key start end來查看現有的五個數據


然后看一下實際長度,其實也是5:

我們現在只留中間三個人的信息,可以使用ltrim指令截取list:

轉載請注明出處:http://blog.csdn.net/acmman/article/details/53240967


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM