4:list类型

list 是一个链表结构,主要功能是 push、pop、获取一个范围的所有值等等,操作中 key 理

解为链表的名字。

Redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。链表的最大长度是(2

的 32 次方)。我们可以通过 push,pop 操作从链表的头部或者尾部添加删除元素。这使得 list

既可以用作栈,也可以用作队列。

  lpush, rpush; 

  1:lpush 是在头部插入, rpush是在尾部插入

redis 127.0.0.1:6378> lpush mylist 'list1'
(integer) 1
redis 127.0.0.1:6378> lpush mylist list2
(integer) 2
redis 127.0.0.1:6378> lrange myllist 0 -1
(empty list or set)
redis 127.0.0.1:6378> lrange mylist 0 -1
1) "list2"
2) "list1"
redis 127.0.0.1:6378> rpush mylist2 one
(integer) 1
redis 127.0.0.1:6378> rpush mylist2 two
(integer) 2
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "one"
2) "two"

 2:linsert 在某个元素前插入

redis 127.0.0.1:6378> linsert mylist2 before one 3
(integer) 3
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "3"
2) "one"
3) "two"

 3:lset修改某个下标的值

redis 127.0.0.1:6378> lset mylist2 0 first
OK
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "first"
2) "one"
3) "two"

 4:lrem删除指定的一个元素

redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "first"
2) "one"
3) "two"
redis 127.0.0.1:6378> lrem mylist2 -2 one
(integer) 1
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "first"
2) "two"
redis 127.0.0.1:6378> lrem mylist2 0 first
(integer) 1
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "two"
redis 127.0.0.1:6378> 

 5:ltrim 保留指定的元素

redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq2"
2) "ljq1"
3) "ljq"
4) "1"
5) "first"
6) "two"
redis 127.0.0.1:6378> ltrim mylist2 1 2
OK
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq1"
2) "ljq"

 6:lpop头部出, rpop尾部出

edis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq4"
2) "ljq3"
3) "ljq2"
4) "ljq1"
redis 127.0.0.1:6378> lpop mylist2
"ljq4"
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq3"
2) "ljq2"
3) "ljq1"
redis 127.0.0.1:6378> rpop mylist2
"ljq1"
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq3"
2) "ljq2"
redis 127.0.0.1:6378> 

 7:lpoprpush

从第一个 list 的尾部移除元素并添加到第二个 list 的头部,最后返回被移除的元素值,整个操

作是原子的.如果第一个 list 是空或者不存在返回 nil

redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq3"
2) "ljq2"
redis 127.0.0.1:6378> lpush mylist3 test1 test2
(integer) 2
redis 127.0.0.1:6378> lrange mylist3 0 -1
1) "test2"
2) "test1"
redis 127.0.0.1:6378> rpoplpush mylist2 mylist3
"ljq2"
redis 127.0.0.1:6378> lrange mylist2 0 -1
1) "ljq3"
redis 127.0.0.1:6378> lrange mylist3 0 -1
1) "ljq2"
2) "test2"
3) "test1"

 8:lindex返回下标的元素,llen计算list的长度

redis 127.0.0.1:6378> lrange mylist3 0 -1
1) "ljq2"
2) "test2"
3) "test1"
redis 127.0.0.1:6378> lindex mylist3 0
"ljq2"
redis 127.0.0.1:6378> llen mylist3
(integer) 3

 

猜你喜欢

转载自iluoxuan.iteye.com/blog/1938827
今日推荐