Redis list鍊錶型別

2021-09-01 11:54:17 字數 2436 閱讀 3148

list型別其實就是乙個雙向鍊錶。通過push,pop操作從鍊錶的頭部或者尾部新增刪除元素。這使得list既可以用作棧(上進上出),也可以用作佇列(上進下出)。

list型別操作:

ipush key string

在key對應list的頭部新增字串元素

rpop key

從list的尾部刪除元素,並返回刪除元素

rpush key string

在key對應list的尾部新增字串元素

ipop key

從list的頭部刪除元素,並返回刪除元素

llen key 返回 key

對應list的長度,key不存在返回0,如果key對應型別不是list返回錯誤

irange key start end

返回指定區間內的元素,下標從0開始

itrim key start end

擷取list,保留指定區間內元素

該list鍊錶型別應用場合:

例:獲得最新的5個登入使用者資訊:select * from user order by logintime desc limit 5;

以上sql語句可以實現使用者需求,但是資料多的時候,全部資料都要受到影響,對資料庫的負載比較高。必要情況還需要給關鍵字段(id或logintime)設定索引,索引也比較耗費系統資源。如果通過list鍊錶實現以上功能,可以在list鍊錶中只保留最新的5個資料,每進來乙個新資料就刪除乙個舊資料,每次就可以從鍊錶中直接獲得需要的資料。極大節省各方面資源消耗。

設定乙個list鍊錶key login,內部有5個元素:

127.0.0.1:6379[1]> keys *

(empty list or set)

127.0.0.1:6379[1]> lpush login xiaoming

(integer) 1

127.0.0.1:6379[1]> lpush login liqiang

(integer) 2

127.0.0.1:6379[1]> lpush login wangkai

(integer) 3

127.0.0.1:6379[1]> lpush login zhanghua

(integer) 4

127.0.0.1:6379[1]> lpush login baifei

(integer) 5

127.0.0.1:6379[1]> keys *

1) "login"

127.0.0.1:6379[1]>

該鍊錶每增加乙個新元素,就刪除乙個舊元素,並且通過範圍查詢鍊錶內部的全部元素資訊:

127.0.0.1:6379[1]> lpush login lihong

(integer) 6

127.0.0.1:6379[1]> rpop login

"xiaoming"

127.0.0.1:6379[1]> lrange login 0 4

1) "lihong"

2) "baifei"

3) "zhanghua"

4) "wangkai"

5) "liqiang"

127.0.0.1:6379[1]> lpush login zhaoya

(integer) 6

127.0.0.1:6379[1]> rpop login

"liqiang"

127.0.0.1:6379[1]> lrange login 0 100

1) "zhaoya"

2) "lihong"

3) "baifei"

4) "zhanghua"

5) "wangkai"

127.0.0.1:6379[1]>

擷取list,保留指定區間內元素:

127.0.0.1:6379[1]> ltrim login 1 3

ok127.0.0.1:6379[1]> llen login

(integer) 3

127.0.0.1:6379[1]> lrange login 0 100

1) "lihong"

2) "baifei"

3) "zhanghua"

127.0.0.1:6379[1]>

Redis list型別操作

在key對應list頭部新增字串 lpush key string 從list頭部刪除,返回刪除的元素 lpop key 在尾部新增 rpush key string 在list尾部刪除元素,返回刪除的元素 rpop key 對應list的長度 key不存在返回0,如果key對應的型別不是list則...

redis list型別簡單操作

1 lpush rpush llen 1.1 語法 lpush key value1 value2 valuen rpush key value value2 valuen llen key 1.2 說明 lpush 向名稱為key的list的左側新增元素value1 valuen rpush 向名...

Jedis操作Redis List型別

list 列表 blpop,brpop,brpoplpush,lindex,linsert,llen,lpop,lpush,lpushx,lrange,lrem,lset,ltrim,rpop,rpoplpush,rpush,rpushx public classlisttypetest lpush...