最近想写一些Redis学习教程来帮助初学者学习。今天讲的就是list类型及操作。
list类型常用命令
lrange
查看列表元素。0表示开头元素,-1表示结尾元素。
语法:lrange key start_index end_index
redis 127.0.0.1:6379> lpush mylist world
(integer) 1
redis 127.0.0.1:6379> lpush mylist hello
(integer) 2
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379>
lpush
在key对应list的头部添加字符串元素
语法:lpush key element
redis 127.0.0.1:6379> rpush mylist2 hello
(integer) 1
redis 127.0.0.1:6379> rpush mylist2 world
(integer) 2
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379>
rpush
在key对应的list的尾部添加字符串元素
语法:rpush key element
redis 127.0.0.1:6379> rpush mylist3 hello
(integer) 1
redis 127.0.0.1:6379> rpush mylist3 world
(integer) 2
redis 127.0.0.1:6379> linsert mylist3 before world there
(integer) 3 redis
127.0.0.1:6379> lrange mylist3 0 -1
1) "hello"
2) "there"
3) "world"
redis 127.0.0.1:6379>
linsert
在可以对应的list的目标位置插入元素
语法:linsert key before|after target_element element
redis 127.0.0.1:6379> linsert mylist3 before world there
(integer) 3
lset
设置list中指定下标的元素值(下标从0开始)
语法:lset key index element
redis 127.0.0.1:6379> lset mylist4 0 four
OK
redis 127.0.0.1:6379> lset mylist4 -2 five
OK
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "four"
2) "five"
3) "three"
redis 127.0.0.1:6379>
lrem
从key对应list中删除count个和value相同的元素。 count>0:从头到尾的顺序,count<0:从尾到头的顺序,count=0:全部
语法:lrem key count element
redis 127.0.0.1:6379> rpush mylist5 hello
(integer) 1
redis 127.0.0.1:6379> rpush mylist5 hello
(integer) 2
redis 127.0.0.1:6379> rpush mylist5 foo
(integer) 3
redis 127.0.0.1:6379> rpush mylist5 hello
(integer) 4
redis 127.0.0.1:6379> lrem mylist5 2 hello
(integer) 2
redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "foo"
2) "hello"
redis 127.0.0.1:6379>
ltrim
保留指定范围内的数据(包含头尾)。
语法:ltrim key start_index end_index
redis 127.0.0.1:6379> rpush mylist8 one
(integer) 1
redis 127.0.0.1:6379> rpush mylist8 two
(integer) 2
redis 127.0.0.1:6379> rpush mylist8 three
(integer) 3
redis 127.0.0.1:6379> rpush mylist8 four
(integer) 4
redis 127.0.0.1:6379> ltrim mylist8 1 -1 OK
redis 127.0.0.1:6379> lrange mylist8 0 -1
1) "two"
2) "three"
3) "four"
redis 127.0.0.1:6379>
lpop
从list头部删除元素,并返回元素
语法:lpop key
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> lpop mylist "hello"
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "world"
redis 127.0.0.1:6379>
rpop
从list尾部删除元素,并返回元素
语法:rpop key
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> rpop mylist2 "world"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
redis 127.0.0.1:6379>
rpoppush
从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的。如果第一个list是空或者不存在返回nil。
语法:rpoppush list1 list2
redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "foo"
3) "hello"
redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "foo"
redis 127.0.0.1:6379> rpoplpush mylist5 mylist6 "hello"
redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "foo"
redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "hello"
3) "foo"
redis 127.0.0.1:6379>
lindex
返回index位置,list中的元素
语法:lindex key index
redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "foo"
redis 127.0.0.1:6379> lindex mylist5 0
"three"
redis 127.0.0.1:6379> lindex mylist5 1
"foo"
redis 127.0.0.1:6379>
llen
返回key对应list的长度
语法:llen key
redis 127.0.0.1:6379> llen mylist5
(integer) 2
redis 127.0.0.1:6379>
原文来自:极客头条