再识redis篇_list类型

以有序的方式储存多个可重复的值redis

推入和弹出操做
了解如何向列表添加项,以及如何从列表里面删除项。


从列表的左端推入 值
LPUSH key value [value ...]
将一个或以上数量的值依次推入到列表的左端,命令返回新 值被推入以后,列表目前包含的 项数量。
复杂度为 O(N) ,其中 N 为被推入值的数量,若是只推入一个值,那么命令的复杂度为 O(1) 。
redis> LPUSH lst "Lua"
(integer) 1
redis> LPUSH lst "Python"
(integer) 2
redis> LPUSH lst "C"
(integer) 33d

如图blog

举个例子,执行命令:
redis> LPUSH lst "Lua" "Python" "C"
(integer) 3
和依次执行如下三个命令的效果同样:
LPUSH lst "Lua"
LPUSH lst "Python"
LPUSH lst "C"索引

 

RPUSH key value [value ...]
将一个或以上数量的值依次推入到列表的右端,命令返回新 值被推入以后,列表目前包含的 项数量。
复杂度为 O(N) ,其中 N 为被推入值的数量,若是只推入一个值,那么命令的复杂度为 O(1) 。
redis> RPUSH lst "Clojure"
(integer) 1
redis> RPUSH lst "Ruby"
(integer) 2
redis> RPUSH lst "C"
(integer) 3遍历

从列表的两端 弹 出 项
命令                做用                              复 杂 度
LPOP key 移除并返回列表最左端的项。 O(1)
RPOP key 移除并返回列表最右端的项。 O(1)im

长度、索引和范围操做d3

LLEN、LINDEX、LLRANGEtop

获 取列表的 长 度
LLEN key
返回列表键 key 的长度,也便是,返回列表包含的列表 项数量。
由于 Redis 会记录每一个列表的长度,因此这个命令无须遍历列表,它的复杂度为 O(1) 。
redis> LLEN lst
(integer) 5
redis> LPOP lst
"Clojure"
redis> LLEN lst
(integer) 4
img

返回 给 定索引上的 项
LINDEX key index
返回列表键 key 中,指定索引 index 上的列表项。index 索引能够是正数或者负数。
复杂度为 O(N) ,N 列表的长度。
redis> LINDEX lst 1
"Ruby"
redis> LINDEX lst 4
"Lua"
redis> LINDEX lst -3
"C"
di

 

LRANGE key start stop
返回列表键 key 中,从索引 start 至索引 stop 范围内的全部列表项。两个索引参数均可以是正数或者
负数。
复杂度为 O(N) , N 为被返回的列表项数量。
redis> LRANGE lst 0 2
1) "Clojure"
2) "Ruby"
3) "C"
redis> LRANGE lst -3 -1
1) "C"
2) "Python"
3) "Lua"

 

相关文章
相关标签/搜索