当前位置:首页 > 开发 > 数据库 > 正文

NoSQL数据库之Redis数据库管理(list类型)

发表于: 2014-07-28   作者:bijian1013   来源:转载   浏览:
摘要: 3.list类型及操作         List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。   &nbs

3.list类型及操作

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

        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"

        0代表头部第一个元素,-1代表尾部第一个元素。lrange mylist 0 -1表示从list中头第一个元素一直到尾第一个元素依次取出来,即第一个元素取到最后一个元素。

        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) "world"
2) "hello"

        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"

        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"

        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) 2
redis 127.0.0.1:6379> lrem mylist5 1 "hello"  //从mylist5中删除1个和hello相同的元素
(integer) 1  //代表删除元素的个数

        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 mylist8 0 -1
1) "two"

        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
1) "world"

        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"

        lists类型

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

redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "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"
redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "hello"
3) "foo"

        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"

        llen:返回key对应list的长度

redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "hello"
3) "foo"
redis 127.0.0.1:6379> llen mylist6
(integer) 3

 

说明:本文是我网上学习LAMP兄弟连李捷老师《NoSQL数据库之Redis数据库管理》的学习笔记。

NoSQL数据库之Redis数据库管理(list类型)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
较流行的 NoSQL数据库Redis数据库, 了解过NoSQL数据库的童鞋都知道,NoSQL更注重的是对 海量数据存
NoSQL 数据库 Redis 快速入门 Redis 是一个 Key-Value 存储系统。和 Memcached 类似,它支持存储的
NoSQL数据库-MongoDB和Redis 发布于2012-12-20,来源:比特网(http://www.uml.org.cn/sjjm/20121220
0. 背景 接上文(http://blog.csdn.net/ordeder/article/details/16893621),对list结构在dict中的
传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点
传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点
传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点
传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点
一、Redis的简介: NoSql 及No Only SQL,是高并发,超大数据存在,不同于关系型数据库。拥有:非关
传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号