详解Redis之list类型及操作

最近想写一些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>

 

 

 

 

原文来自:极客头条

你可能感兴趣的:(详解Redis之list类型及操作)