Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1564395
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2012-09-14 09:14:14

今天来看我们的Redis神器的第三把剑,青干剑(lists类型)的修炼:

第三把----------------------青干lists类型


介绍:List 是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。


技能:


1.lpush


在key对应list的头部添加字符串元素


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"


2.rpush


在key对应list的尾部添加字符串元素

redis 127.0.0.1:6379> rpush mylist2 "world"
(integer) 1
redis 127.0.0.1:6379> rpush mylist2 "hello"
(integer) 2
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"


3.linsert


在key对应list的特定位置前或后添加字符串

redis 127.0.0.1:6379> rpush mylist3 "world"
(integer) 1
redis 127.0.0.1:6379> linsert mylist3 before "world" "hello"
(integer) 2
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "hello"
2) "world"


4.lset


设置list中指定下标的元素值


redis 127.0.0.1:6379> rpush mylist4 "hello"
(integer) 1
redis 127.0.0.1:6379> lset mylist4 0 "world"
OK
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "world"


4.lrem


从key对应list中删除n个和value相同的元素。(n<0从尾删除,n=0全部删除)


redis 127.0.0.1:6379> rpush mylist5 "hello"
(integer) 1
redis 127.0.0.1:6379> rpush mylist5 "hello"
(integer) 1
redis 127.0.0.1:6379> lrem mylist5 1 "hello"
(integer) 1

5.ltrim


保留指定key的值范围内的数据

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> ltrim mylist8 1 -1
(integer) 1
redis 127.0.0.1:6379> lrange mylist5 1 "hello"
(integer) 1


6.lpop


从list的头部删除元素,并返回删除元素

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
"world"
redis 127.0.0.1:6379>


7.rpop


从list的尾部删除元素,并返回删除元素

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>


8.rpoplpush


从第一个list的尾部移除元素并添加到第二个list的头部

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>


9.lindex


返回名称为key的list中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>


10.llen


返回key对应list的长度

redis 127.0.0.1:6379> llen mylist5
(integer) 2
redis 127.0.0.1:6379>


哈哈,这样我们的第三把剑的武功秘籍也出炉啦,以上所有的技能,你看看到底掌握了多少,有问题在下边跟帖回复即可!
原文地址:
阅读(246) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~