redis数据类型:lists

redis的list类型其实就是一个每个子元素都是string类型的双向链表。

我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样list即可以作为

栈,又可以作为队列。

 

lpush方法:从头部添加字符串元素

lrange方法:从list中取数据,从头部取

127.0.01:6379> lpush list1 "hello" "word"
(integer) 2
127.0.01:6379> LRANGE list1 0 -1
1) "word"
2) "hello"

rpush方法:从尾部压入

127.0.01:6379> rpush list2 "hello" "word"
(integer) 2
127.0.01:6379> LRANGE list2 0 -1
1) "hello"
2) "word"

linsert方法:在指定键的list的指定元素前或者后插入

127.0.01:6379> rpush list2 "hello" "word"
(integer) 2
127.0.01:6379> LRANGE list2 0 -1
1) "hello"
2) "word"
127.0.01:6379> LINSERT list2 before "word" "in"
(integer) 3
127.0.01:6379> LRANGE list2 0 -1
1) "hello"
2) "in"
3) "word"

lset方法:设置list指定下标的元素值

127.0.01:6379> lpush list3 one two three
(integer) 3
127.0.01:6379> lrange list3 0  -1
1) "three"
2) "two"
3) "one"
127.0.01:6379> lset list3 0 onechange
OK
127.0.01:6379> lrange list3 0  -1
1) "onechange"
2) "two"
3) "one"

lrem方法:从key对应list中删除n个和value相同的元素。返回删除掉的个数

(n<0从尾部删除,n=0全部删除)

127.0.01:6379> rpush list2 "one" "one" "one"
(integer) 6
127.0.01:6379> lrange list2 0  -1
1) "hello"
2) "in"
3) "word"
4) "one"
5) "one"
6) "one"
127.0.01:6379> lrem list2 2 "one"
(integer) 2
127.0.01:6379> lrange list2 0  -1
1) "hello"
2) "in"
3) "word"
4) "one"
127.0.01:6379> lrem list2 1 "one"
(integer) 1
127.0.01:6379> lrange list2 0  -1
1) "hello"
2) "in"
3) "word"
127.0.01:6379> lrem list2 1 "one"
(integer) 0

ltrim方法:保留key对应list的指定范围的数据

127.0.01:6379> rpush list5 "one" "two" "three" "four"
(integer) 4
127.0.01:6379> lrange list5 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
127.0.01:6379> LTRIM list5 1 2
OK
127.0.01:6379> lrange list5 0 -1
1) "two"
2) "three"

lpop方法:从list头部删除元素,并返回删除元素

rpop方法:从list的尾部删除元素,并返回删除元素

127.0.01:6379> rpush list6 "one" "two" "three"
(integer) 3
127.0.01:6379> lrange list6 0 -1
1) "one"
2) "two"
3) "three"
127.0.01:6379> rpop list6
"three"
127.0.01:6379> lpop list6
"one"
127.0.01:6379> lrange list6 0 -1
1) "two"

rpoplpush方法:从一个list中移除尾部元素,将这个元素添加到另一个list的头部

127.0.01:6379> lrange list2 0 -1
1) "hello"
2) "in"
3) "word"
127.0.01:6379> lrange list3 0 -1
1) "onechange"
2) "two"
3) "one"
127.0.01:6379> rpoplpush list2 list3
"word"
127.0.01:6379> lrange list2 0 -1
1) "hello"
2) "in"
127.0.01:6379> lrange list3 0 -1
1) "word"
2) "onechange"
3) "two"
4) "one"

lindex方法:返回名称为key的list中index位置的元素

127.0.01:6379> lrange list3 0 -1
1) "word"
2) "onechange"
3) "two"
4) "one"
127.0.01:6379> LINDEX list3 2
"two"

llen方法:返回key对应的list的长度

127.0.01:6379> lrange list3 0 -1
1) "word"
2) "onechange"
3) "two"
4) "one"
127.0.01:6379> llen list3
(integer) 4

 

posted @ 2016-08-03 14:30  玉曲风  阅读(168)  评论(0编辑  收藏  举报