小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
List
在redis里面,我们可以把list玩成栈,队列,阻塞队列.redis不区分大小写
所有的list命令都是用l开头的
LPUSH list one #将一个值或者多个值插入列表头部
LRANGE #
Rpush list right #向尾部添加
LPOP 移除第一个元素
RPOP 移除
Lindex list 1 通过下标获取值
Llen
################################
#移除指定的值
Lrem key count value
################################
rpoplpush #移除列表的最后一个元素并将它移动到新的列表中
#通过下标截取指定长度
ltrim mylist 1 2
################################
rpoplpush #移除列表的最后一个元素并将它移动到新的列表中
################################
EXISTS list
#lset list 1 item 将列表中指定下标的值替换为另外一个值,相当于更新操作
###############################
#linsert 往某一个key的前面或者后面插入一个值
测试代码
127.0.0.1:6379> lpush list1 one
(integer) 1
127.0.0.1:6379> lrange list1 0 -1
1) "one"
127.0.0.1:6379> lpush list1 two
(integer) 2
127.0.0.1:6379> lrange list 0 -1
(empty list or set)
127.0.0.1:6379> lrange list1 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lpop list1
"two"
127.0.0.1:6379> lrange list1 0 -1
1) "one"
127.0.0.1:6379> rpush list1 three
(integer) 2
127.0.0.1:6379> lrange lsit1 0 -1
(empty list or set)
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "three"
127.0.0.1:6379> lindex list 1
(nil)
127.0.0.1:6379> lindex list1 1
"three"
127.0.0.1:6379> llen list1
(integer) 2
127.0.0.1:6379> lpush one
(error) ERR wrong number of arguments for 'lpush' command
127.0.0.1:6379> lpush list1 one
(integer) 3
127.0.0.1:6379> lpush list1 one
(integer) 4
127.0.0.1:6379> lrange
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange 0 -1
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "one"
3) "one"
4) "three"
127.0.0.1:6379> lrem list 2 one
(integer) 0
127.0.0.1:6379> lrem list1 2 one
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "one"
2) "three"
127.0.0.1:6379>
小结
他实际上是一个链表,before Node after,left,right都可以插入值
如果key存在,心中内容
如果移除了所有值,空链表,也代表不存在
在两边插入或者改动值,效率最高,中元素效率会低
消息队列