redis的 list

來源:互聯網
上載者:User

標籤:new   str   表示   idt   截取   16px   use   img   alt   

redis的list是一個雙向鏈表,既可以用作棧,也可以用作隊列,幸好大學學過資料結構,還有印象。

棧:先進後出,隊列:先進先出

redis鏈表操作:

應用情境學習list鏈表:要擷取最新的10個登入使用者資訊, 如果用sql的話:select * from user order by logintime desc limit 10; 但是資料量大的話,這一條sql下去,這個表全部的資料都要收到影響,對資料庫的負載比較高,必要情況還需要給關鍵字段(id或者logintime)設定索引,過多設定索引也是比較耗費系統資源的。

現在用redis的list來實現:只在list中保留5個資料,每次添加一個新的資料就刪除一箇舊的資料。每次都可以從鏈表中直接擷取到需要的資料,極大的節省了各方面的資源。

1,啟動redis的操作終端,切換到第二個資料庫,該資料庫為空白:

,

2,lpush操作:執行命令lpush(l就是left的簡寫)命令向鏈表中添加5條資料,鏈表命名為 newlogin,表示新登入的使用者,可以用type newlogin來查看newlogin的類型。

現在redis的第二個資料庫裡就有一個key 是 newlogin 的鏈表,裡邊依次儲存了xiaoming、jack、jim、zhangsan、lisi 五條資料。

 

 3,rpop操作:現在要再添加一條新資料,就從鏈表尾部刪除一條資料,添加一個xiaoli,同時執行rpop(r是right的簡寫)從尾部刪除第一個添加進去的資料(xiaoming):

4,llen、lrange操作:llen newlogin返回list的長度。lrange newlogin 0 4返回list對應範圍的元素,如果最大下標超過了list的長度,也是返回所有的元素。 

 

rpush是從尾部添加一個元素,lpop是從頭部刪除一個元素,rpush和lpop配合使用;lpush和rpop配合使用。

5,ltrim操作:截取list中的一部分元素:

redis的 list

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.