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...