背景:我记不住那么多命令,又是Linux命令,又是Git命令,又是kubernetes的命令,又是maven命令,又是redis命令。所谓好记性不如烂笔头,记下来吧。

一、list类型

1. rpush : 从列表右侧推入,即 right push

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