redis中的 list 可当成栈、队列、阻塞队列。命令以 l 开头。
插入值到列表的头部(左边)和尾部(右边)。允许插入重复值。(list也允许使用lset等方式赋值,但前提是list存在)
lpush list v1
lpush list v2
lpush list v3
此时查看列表所有值,则得到一个从左往右倒序的列表。因为lpush总是从列表的左侧插入:
lrange list 0 -1:
"v3" "v2" "v1"
若想往列表右侧插入,那么使用rpush即可:
rpush list v0
再次遍历列表,得到:
"v3" "v2" "v1" "v0"
从头、尾删除元素
Lpop list //移除头部元素(左侧)
Rpop list //移除尾部元素(右侧)
删除指定元素,注意这里的 n ,当n带的符号不一样时,其含义也不一样:
lrem list n value //删除列表中从头部往尾部数出现的前n个值为value的元素
lrem list -n value //删除列表中从尾部往头部数最后出现的n个值为value的元素
lrem list 0 value //删除列表中所有值为value的元素
截取指定子列表。当start > end 时,直接将列表变成空表,当end > Llen时,默认将end改为尾部元素
ltrim list 0 2 //表示截取list从头到尾前3个元素
根据下标获取list中的某一个值
Lindex list index
获取列表的长度
Llen list
移除列表中末尾元素,并将其移动到新的列表中,组合命令
rpoplpush oldlist newlist //oldlist的末尾会少一个元素,并生成新的newlist,里面的元素就是lodlist之前的末尾元素