Redis的List的操作
一、介紹
list型別其實就是一個雙向連結串列,通過push , pop 操作從連結串列的頭部或者尾部新增或者刪除元素,這就使得list既可以作用棧,也可以用作佇列。
該list連結串列型別的應用場合:
獲取最新的5個登入使用者資訊:select * from user order by logintime desc limit 5. 這個sql語句可以實現使用者需求,但是資料多的時候,全部資料都要受影響,對資料庫的負載比較高。必要情況下還需要給資料庫欄位新增索引(id 或者 logintime),索引也是比較耗費系統資源的。
如果通過list連結串列實現以上的功能,可以在list連結串列中只保留最新的5個數據,每進來一個新資料就刪除一箇舊的資料,這樣就可以每次從list連結串列中獲取最新的5個數據了,極大的減少了各方面的資源消耗。
二、操作
1. lpush key value 在連結串列的頭部新增一個元素
現在我們需要新增5個新的登入使用者,依次登入的使用者是:Steven, Jack, Miles, Albert, Zach
2. rpop key 從連結串列的尾部刪除一個元素
現在我們又有第6個使用者Imo登入進來了,但是我們的需求是隻儲存最新登入的5個使用者,那麼先登入的使用者Steven應該被刪除掉。
3. lrange key start end 返回指定區間內的元素,下標從0開始
4. llen key 返回key對應的list的長度,key不存在返回0,如果key的對應型別不是list返回錯誤
5. rpush key value 在key對應的list連結串列的尾部新增元素
6. lpop key 從list連結串列的頭部刪除元素,並返回刪除的元素
7. ltrim key start end 擷取list,保留指定區間的元素