最近想写一些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>
原文来自:极客头条