2. lpush:从列表左侧推入,即 left push ,这里的l不是代表list的意思,而是left
当你看到lpush是说list并且从左侧进行推入。
3. rpop : 从列表右侧弹出,即 right pop
4. lpop :从列表左侧弹出,即 left pop
5. lindex :返回列表的偏移量offset的元素,其实和数组非常类似,从0开始
6. lrange:返回列表的start到end的子列表,即 [start,end] ,左闭右闭,仅仅是截取列表,不改变原有列表的值。
7. llen : 获取列表长度
8. ltrim : 返回列表的截取部分,即 [start,end] ,左闭右闭 ,这个命令与第6条的区别在于 ltrim改变了原有列表的值。
9. lset:通过索引来设置元素的值
10. blpop : 从非空列表中弹出最左侧的元素,这里会有timeout,如果此列表为空,则进行等待或阻塞timeout的时间,单位是秒。当时间到了列表依旧是空,则无任何返回。 b是block阻塞的意思
11. brpop : 这个命令同第10个命令的功能一致,只不过是从右侧弹出。b是block阻塞的意思
12. rpoplpush : 这是一个组合的命令,意思是从一个列表右侧弹出,并从左侧推送到另外一个列表中
13. brpoplpush:这个命令与第12个命令不同之处在于有一个timeout值,单位为秒,b是block的意思,用于阻塞等待,和第10个命令和第11个命令相似。
14. lpushx / rpushx : 这个命令是将数据从左侧插入或右侧插入到列表,不同之处在于如果这个列表不存在,则不执行操作。如果这个列表存在,则进行插入操作。
15. lrem : 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
count = 0 : 移除表中所有与 VALUE 相等的值
格式为: lrem key count VALUE
16. linsert 用于在某个元素前或后插入元素,当指定的元素不存在列表中,则不执行操作;当列表不存在也不执行任何操作。如果key不是列表类型,则返回错误。
格式为: linsert key BEFORE|AFTER pivot value
- # 1. rpush : 从列表右侧推入,即 right push
- 127.0.0.1:6379> rpush mylist1 a
- 1
- 127.0.0.1:6379> rpush mylist1 b c d e f g h
- 8
-
- # 2. lpush:从列表左侧推入,即 left push
- 略
-
- # 3. rpop : 从列表右侧弹出,即 right pop
- 略
-
- # 4. lpop :从列表左侧弹出,即 left pop
- 略
-
- # 5. lindex :返回列表的偏移量offset的元素,其实和数组非常类似,从0开始
- 127.0.0.1:6379> lindex mylist1 0
- a
- 127.0.0.1:6379> lindex mylist1 1
- b
-
- # 6. lrange:返回列表的start到end的子列表,即 [start,end] ,左闭右闭,仅仅是截取列表,不改变原有列表的值。
- 127.0.0.1:6379> lrange mylist1 0 -1
- a
- b
- c
- d
- e
- f
- g
- h
-
- 127.0.0.1:6379> lrange mylist1 1 -2
- b
- c
- d
- e
- f
- g
-
- # 7. llen : 获取列表长度
- 127.0.0.1:6379> llen mylist1
- 8
-
- # 8. ltrim : 返回列表的截取部分,即 [start,end] ,左闭右闭 ,这个命令与第6条的区别在于 ltrim改变了原有列表的值
- 127.0.0.1:6379> ltrim mylist1 1 -2
- OK
- 127.0.0.1:6379> lrange mylist1 0 -1
- b
- c
- d
- e
- f
- g
-
- # 9. lset:通过索引来设置元素的值
- 127.0.0.1:6379> lset mylist1 0 z
- OK
- 127.0.0.1:6379> lrange mylist1 0 -1
- z
- c
- d
- e
- f
- g
-
- # 10. blpop : 从非空列表中弹出最左侧的元素,示例中的5是timeout值,如果此列表为空,则进行等待或阻塞timeout的时间,单位是秒。当时间到了列表还是空的话,则无任何返回
- 127.0.0.1:6379> blpop mylist2 5
-
- 127.0.0.1:6379> blpop mylist3 5
-
- 127.0.0.1:6379> rpush mylist2 csdn
- 1
- 127.0.0.1:6379> blpop mylist2 5
- mylist2
- csdn
- 127.0.0.1:6379> lrange mylist2 0 -1
-
-
- # 11. brpop : 这个命令同第10个命令的功能一致,只不过是从右侧弹出
- 127.0.0.1:6379> brpop mylist2 5
-
- 127.0.0.1:6379> brpop mylist3 5
-
- 127.0.0.1:6379> rpush mylist2 csdn github gitee
- 3
- 127.0.0.1:6379> brpop mylist2 5
- mylist2
- gitee
- 127.0.0.1:6379> lrange mylist2 0 -1
- csdn
- github
-
- # 12. rpoplpush : 这是一个组合的命令,意思是从一个列表右侧弹出,并从左侧推送到另外一个列表中,返回的是弹出的值。
- 127.0.0.1:6379> lrange mylist2 0 -1
- csdn
- github
- 127.0.0.1:6379> rpoplpush mylist2 mylist3
- github
- 127.0.0.1:6379> lrange mylist2 0 -1
- csdn
- 127.0.0.1:6379> lrange mylist3 0 -1
- github
-
- # 13. brpoplpush:这个命令与第12个命令不同之处在于有一个timeout值,单位为秒,b是block的意思,用于阻塞等待,和第10个命令和第11个命令相似。
- 127.0.0.1:6379> brpoplpush mylist2 mylist3 5
- csdn
- 127.0.0.1:6379> lrange mylist2 0 -1
-
- 127.0.0.1:6379> lrange mylist3 0 -1
- csdn
- github
-
- # 14. lpushx / rpushx : 这个命令是将数据从左侧插入或右侧插入到列表,不同之处在于如果这个列表不存在,则不执行操作。如果这个列表存在,则进行插入操作。
- 127.0.0.1:6379> lpushx mylist4 chinanews
- 0
- 127.0.0.1:6379> lrange mylist4 0 -1
-
- rpushx同理,只是方向不同而已
-
- # 15. lrem Redis Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
- COUNT 的值可以是以下几种:
- count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
- count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
- count = 0 : 移除表中所有与 VALUE 相等的值
- 格式为 LREM key count VALUE
-
- 127.0.0.1:6379> rpush mylist2 csdn github gitee google
- 4
- 127.0.0.1:6379> rpush mylist2 csdn github gitee google
- 8
- 127.0.0.1:6379> lrange mylist2 0 -1
- csdn
- github
- gitee
- google
- csdn
- github
- gitee
- google
- 127.0.0.1:6379> lrem mylist2 0 csdn
- 2
- 127.0.0.1:6379> lrange mylist2 0 -1
- github
- gitee
- google
- github
- gitee
- google
-
- 127.0.0.1:6379> lrem mylist2 1 gitee
- 1
- 127.0.0.1:6379> lrange mylist2 0 -1
- github
- google
- github
- gitee
- google
-
- 127.0.0.1:6379> lrem mylist2 -1 gitee
- 1
- 127.0.0.1:6379> lrange mylist2 0 -1
- github
- google
- github
- google
-
- # 16. linsert 用于在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误
- 127.0.0.1:6379> linsert mylist2 before github gitee
- 5
- 127.0.0.1:6379> lrange mylist2 0 -1
- gitee
- github
- google
- github
- google
- 127.0.0.1:6379> linsert mylist2 after github gitee
- 6
- 127.0.0.1:6379> lrange mylist2 0 -1
- gitee
- github
- gitee
- google
- github
- google