1.基本命令(所有的list命令都是l加基本命令)
1.设置list值,获取list值,简单删除
myredis:0>lpush list one 从左别开始设置list 值为 one
"1"
myredis:0>lpush list two
"2"
myredis:0>lpush list three
"3"
myredis:0>lrange list 0 -1 获取list的值
1) "three"
2) "two"
3) "one"
myredis:0>rpush list four #从右别开始设置list 值为 four
"4"
myredis:0>lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"
myredis:0>lpop list #从左边开始删除list 值
"three"
myredis:0>rpop list #从右边开始删除list 值
"four"
myredis:0>lrange list 0 -1
1) "two"
2) "one"
###################################################################################
2.Lindex(获取list下标的值,下标也是从0开始)
myredis:0>lrange list 0 -1
1) "two"
2) "one"
myredis:0>lindex list 2 #获取下标为2的值
null
myredis:0>lindex list 1 #获取下标为1的值
"one"
###################################################################################
3.Llen(获取list的长度)
myredis:0>llen list
"2"
###################################################################################
4.lrem(删除指定内容的值)
myredis:0>lrange list 0 -1
1) "five"
2) "two"
3) "two"
myredis:0>lrem list 1 two #删除指定内容的1个值
"1"
myredis:0>lrange list 0 -1
1) "five"
2) "two"
myredis:0>lpush list two
"3"
myredis:0>lrem list 2 two
"2"
myredis:0>lrange list 0 -1 #删除指定内容的2个值
1) "five"
###################################################################################
ltrim截取指定下标元素的值
myredis:0>lrange list 0 -1 # 获取list的值
1) "three"
2) "two"
3) "one"
myredis:0>lrange list 0 -1 #截取指定下标元素的值
1) "three"
2) "two"
###################################################################################
rpoplpush :移动最右边(最后一个)的元素到新的列表中
myredis:0>lrange list 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
myredis:0>rpoplpush list otherlist #移动最右边(最后一个)的元素到新的列表中
"one"
myredis:0>lrange list 0 -1
1) "four"
2) "three"
3) "two"
myredis:0>lrange lotherist 0 -1
myredis:0>lrange otherlist 0 -1
1) "one"
###################################################################################
lset(根据下标更新对应的值,如果不存在会报错)
myredis:0>exists list #判断是否有list这个key
"0"
myredis:0>lset list 0 one #如果没有key,lset会报错
"ERR no such key"
myredis:0>lpush list one
"1"
myredis:0>lpush list two
"2"
myredis:0>lrange list 0 -1
1) "two"
2) "one"
myredis:0>lset list 1 tow #如果有list,并且下标存在,lset会替换下标的值
"OK"
myredis:0>lrange list 0 -1
1) "two"
2) "tow"
myredis:0>lset list 3 tow #如果有list,并且下标不存在,lset会报错(提升下标越界了)
"ERR index out of range"
###################################################################################
linsert(在list集合中指定的元素前面或者后面添加元素)
myredis:0>lpush list hello
"1"
myredis:0>lpush list ,word
"2"
myredis:0>lrange list 0 -1
1) ",word"
2) "hello"
myredis:0>linsert list before ",word" other
"3"
myredis:0>lrange list 0 -1
1) "other"
2) ",word"
3) "hello"
myredis:0>linsert list after "hello" java:say
"4"
myredis:0>lrange list 0 -1
1) "other"
2) ",word"
3) "hello"
4) "java:say"
2.总结
- list是一个双向链表。可以左右插入值
- lpush是往前添加元素,rpush是往后添加数据
- 如果key不存在,就创建新链表,如果key存在就新增内容
- 在list两边插入数据比较快,效率高。中间元素相对比较低
网友评论