可用指令
资料结构
从左边插入value.
# 从左边插入value
127.0.0.1:6379> lpush mylist abc
(integer) 1
# 确认底层型态为quicklist
127.0.0.1:6379> object encoding mylist
"quicklist"
127.0.0.1:6379> lpush mylist abc abc abc
(integer) 3
# value可以重覆
127.0.0.1:6379> lrange mylist 0 3
1) "abc"
2) "abc"
3) "abc"
当list存在时,从左边插入value.
127.0.0.1:6379> lrange mylist 0 3
(empty array)
127.0.0.1:6379> lpush mylist abc
(integer) 1
# 从左边插入值到已存在的list
127.0.0.1:6379> lpushx mylist def
(integer) 2
127.0.0.1:6379> lrange mylist 0 3
1) "def"
2) "abc"
# 无法插入值到不存在的list
127.0.0.1:6379> lpushx mylist2 def
(integer) 0
127.0.0.1:6379> lrange mylist2 0 3
(empty array)
从左边取出value,可以指定一次取出多少个value.
# 取出value
127.0.0.1:6379> lpop mylist
"abc"
# 没有可以再取出的value
127.0.0.1:6379> lpop mylist
(nil)
# 插入3个value
127.0.0.1:6379> lpush mylist abc def ghi
(integer) 3
127.0.0.1:6379> lrange mylist 0 2
1) "ghi"
2) "def"
3) "abc"
# 一次取出两个value
127.0.0.1:6379> lpop mylist 2
1) "ghi"
2) "def"
从右边插入value.
# 从右边插入value
127.0.0.1:6379> rpush mylist abc
(integer) 1
# 确认底层型态为quicklist
127.0.0.1:6379> object encoding mylist
"quicklist"
当list存在时,从右边插入value.
127.0.0.1:6379> lrange mylist 0 3
(empty array)
127.0.0.1:6379> rpush mylist abc
(integer) 1
# 从右边插入值到已存在的list
127.0.0.1:6379> rpushx mylist def
(integer) 2
127.0.0.1:6379> lrange mylist 0 3
1) "abc"
2) "def"
# 无法插入值到不存在的list
127.0.0.1:6379> rpushx mylist2 def
(integer) 0
从右边取出value,可以指定一次取出多少个value.
# 取出value
127.0.0.1:6379> rpop mylist
"abc"
# 没有可以再取出的value
127.0.0.1:6379> rpop mylist
(nil)
# 插入3个value
127.0.0.1:6379> rpush mylist abc def ghi
(integer) 3
127.0.0.1:6379> lrange mylist 0 2
1) "abc"
2) "def"
3) "ghi"
# 一次取出两个value
127.0.0.1:6379> rpop mylist 2
1) "ghi"
2) "def"
显示List中valu的个数.
# 插入3个value
127.0.0.1:6379> lpush mylist abc def ghi
(integer) 3
# 取得List中value的个数
127.0.0.1:6379> llen mylist
(integer) 3
# <----
# -3 -2 -1 Right index
# abc def ghi
#Left index 0 1 2
# ---->
取得指定Range的value值.
127.0.0.1:6379> lpush mylist abc def ghi
(integer) 3
# 取出从位置0到位置-1的value
127.0.0.1:6379> lrange mylist 0 -1
1) "ghi"
2) "def"
3) "abc"
# 取出从位置1到位置1的value
127.0.0.1:6379> lrange mylist 1 1
1) "def"
# 取出从位置1到位置2的value
127.0.0.1:6379> lrange mylist 1 2
1) "def"
2) "abc"
# 取出从位置-2到位置1的value
127.0.0.1:6379> lrange mylist -2 1
1) "def"
# 取出从位置-2到位置2的value
127.0.0.1:6379> lrange mylist -2 2
1) "def"
2) "abc"
# 取出从位置-2到位置0的value
127.0.0.1:6379> lrange mylist -2 0
(empty array)
取得指定index的value值.
127.0.0.1:6379> lpush mylist abc def ghi
(integer) 3
# 查询index 1的value值
127.0.0.1:6379> lindex mylist 1
"def"
# 查询index 2的value值
127.0.0.1:6379> lindex mylist 2
"abc"
修改指定index的value值.
127.0.0.1:6379> lindex mylist 0
"ghi"
# 修改
127.0.0.1:6379> lset mylist 0 aaa
OK
127.0.0.1:6379> lindex mylist 0
"aaa"
根据index范围保留value,除范围以内的其余value将被删除.
127.0.0.1:6379> lrange mylist 0 2
1) "aaa"
2) "def"
3) "abc"
# 删除指定范围以外的value
127.0.0.1:6379> ltrim mylist 1 2
OK
127.0.0.1:6379> lrange mylist 0 2
1) "def"
2) "abc"
block 右边取出,类似long polling机制.
127.0.0.1:6379> lrange mylist 0 3
(empty array)
# 如果list中没有value,则会等待10秒
127.0.0.1:6379> brpop mylist 10
(nil)
(10.03s)
# 如果10秒内有value插入,则从右边取出1个value
127.0.0.1:6379> brpop mylist 10
1) "mylist"
2) "aaa"
(1.64s)
block 左边取出,类似long polling机制.
127.0.0.1:6379> lrange mylist 0 3
(empty array)
# 如果list中没有value,则会等待10秒
127.0.0.1:6379> blpop mylist 10
(nil)
(10.03s)
# 如果10秒内有value插入,则从左边取出1个value
127.0.0.1:6379> blpop mylist 10
1) "mylist"
2) "aaa"
(1.32s)
从左边开始删除几个指定value.
127.0.0.1:6379> lpush mylist abc abc abc
(integer) 3
127.0.0.1:6379> lrange mylist 0 3
1) "abc"
2) "abc"
3) "abc"
# 从左边开始删除1个abc的value
127.0.0.1:6379> lrem mylist 1 abc
(integer) 1
127.0.0.1:6379> lrange mylist 0 3
1) "abc"
2) "abc"
# 从左边开始删除2个abc的value
127.0.0.1:6379> lrem mylist 2 abc
(integer) 2
127.0.0.1:6379> lrange mylist 0 3
(empty array)
将value插入到指定value之前或之後.
127.0.0.1:6379> lpush mylist abc def
(integer) 2
127.0.0.1:6379> lrange mylist 0 3
1) "def"
2) "abc"
# 在abc此value前插入111的value
127.0.0.1:6379> linsert mylist before abc 111
(integer) 3
127.0.0.1:6379> lrange mylist 0 3
1) "def"
2) "111"
3) "abc"
# 在111此value後插入222的value
127.0.0.1:6379> linsert mylist after 111 222
(integer) 4
127.0.0.1:6379> lrange mylist 0 3
1) "def"
2) "111"
3) "222"
4) "abc"
指定从某个list取出value并插入到另外一个list.
127.0.0.1:6379> lrange mylist 0 3
(empty array)
127.0.0.1:6379> lpush mylist abc def
(integer) 2
127.0.0.1:6379> lrange mylist2 0 3
(empty array)
#从mylist中取出value abc插入mylist2
127.0.0.1:6379> rpoplpush mylist mylist2
"abc"
127.0.0.1:6379> lrange mylist 0 3
1) "def"
127.0.0.1:6379> lrange mylist2 0 3
1) "abc"
指定从某个list的某方向取出value并插入到另外一个list的指定方向.
127.0.0.1:6379> lrange mylist 0 3
(empty array)
127.0.0.1:6379> lrange mylist2 0 3
(empty array)
127.0.0.1:6379> lpush mylist abc def ghi
(integer) 3
# 从mylist的右边取出value并插入到mylist2的右边
127.0.0.1:6379> lmove mylist mylist2 right right
"abc"
127.0.0.1:6379> lrange mylist 0 3
1) "ghi"
2) "def"
127.0.0.1:6379> lrange mylist2 0 3
1) "abc"
# 从mylist的左边取出value并插入到mylist2的右边
127.0.0.1:6379> lmove mylist mylist2 left right
"ghi"
127.0.0.1:6379> lrange mylist 0 3
1) "def"
127.0.0.1:6379> lrange mylist2 0 3
1) "abc"
2) "ghi"
在6.2版本改用BLMOVE取代.
跟LMOVE使用方式一样,但会指定秒数.
指定从某个list的某方向取出value并插入到另外一个list的指定方向.
>>: 那些被忽略但很好用的 Web API / SessionStorage
昨天介绍完如何跳页,今天将会分享如何跳页传值。 成品: 刚执行模拟器的样子 按下 Button 後会...
制作 K 线的 Data Model,从前面文章 [加权指数K线图实作.2] 的 response ...
延续昨日 今天来把登入的功能搞定吧! 记得我们day7学到的东西吗? :class="pr...
YOLO 是一个不断改进和优化的物件侦测系列,除了前三个版本,在 2020 年时,YOLOv4 也问...
先简单回顾一下,今天预计分析的题目: Valid Parentheses 昨天问到,如果 ([)] ...