一  lists类型及操作

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

二 lists类型的使用

1. lpush

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

redis 127.0.0.1:> lpush mylist1 world
(integer)
redis 127.0.0.1:> lpush mylist1 hello
(integer)
redis 127.0.0.1:> lrange mylist1 -
) "hello"
) "world"

2. rpush

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

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

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:> rpush mylist5 world
(integer)
redis 127.0.0.1:> lset mylist5 hello
OK
redis 127.0.0.1:> lrange mylist5 -
) "hello"

5 lrem

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

redis 127.0.0.1:> rpush mylist6 hello
(integer)
redis 127.0.0.1:> rpush mylist6 hello
(integer)
redis 127.0.0.1:> lrem mylist6 hello
(integer)

6 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
OK
redis 127.0.0.1:6379> lrange mylist8 0 -1
1) "two"

7 lpop

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

redis 127.0.0.1:6379> rpush mylist11 one
(integer) 1
redis 127.0.0.1:6379> rpush mylist11 two
(integer) 2
redis 127.0.0.1:6379> rpush mylist11 three
(integer) 3
redis 127.0.0.1:6379> lpop mylist11
"one"
redis 127.0.0.1:6379> lrange mylist11 0 -1
1) "two"
2) "three"

8.rpoplpush

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

redis 127.0.0.1:> rpush mylist12 one
(integer)
redis 127.0.0.1:> rpush mylist12 two
(integer)
redis 127.0.0.1:> rpush mylist13 aaa
(integer)
redis 127.0.0.1:> rpush mylist13 bbb
(integer)
redis 127.0.0.1:> rpush mylist13 ccc
(integer)
redis 127.0.0.1:> rpoplpush mylist12 mylist13
"two"
redis 127.0.0.1:> lrange mylist12 -
) "one"
redis 127.0.0.1:> lrange mylist13 -
) "two"
) "aaa"
) "bbb"
) "ccc"

9 lindex

返回名称为key的list中index位置的元素。

redis 127.0.0.1:6379> lrange mylist13 0 -1
1) "two"
2) "aaa"
3) "bbb"
4) "ccc"
redis 127.0.0.1:6379> lindex mylist13 0
"two"
redis 127.0.0.1:6379> lindex mylist13 1
"aaa"
redis 127.0.0.1:6379> lindex mylist13 2
"bbb"

10 llen

返回key对应list的长度。

redis 127.0.0.1:6379> llen mylist13
(integer) 4
redis 127.0.0.1:6379> lrange mylist13 0 -1
1) "two"
2) "aaa"
3) "bbb"
4) "ccc"

深入浅出Redis04使用Redis数据库(lists类型)的更多相关文章

  1. 深入浅出Redis02 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  2. 深入浅出Redis03 使用Redis数据库(hashes类型)

    一 hashes类型及操作 Redis hash是一个string类型的field和value的映射表.它的添加,删除操作都是0(1)(平均).hash特别适合用于存储对象,相较于对将对象的每个字段存 ...

  3. 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  4. redis的lists类型

    List是一个链表结构 , 主要功能是push . pop .获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双 ...

  5. 03_NoSQL数据库之Redis数据库:list类型

     lists类型及操作 List是一个链表结构,主要功能室push,pop.获取一个范围的所有值等等,操作中key理解为链表的名字.Redis的list类型其实就是一个每个元素都是string类型 ...

  6. Redis数据库

    Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...

  7. Redis 数据库入门指南

    Redis 是一个开源数据库,它使用内存数据结构存储,可作为数据库.缓存和消息代理使用.Redis 支持丰富的数据结构,有:字符串(Strings).哈希(Hashs).列表(Lists).集合(Se ...

  8. 超强、超详细Redis数据库入门教程

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  9. Redis数据库入门教程

    [使用redis客户端] 我们直接看一个例子: 复制代码 代码如下: //这样来启动redis客户端了 $ ./redis-cli //用set指令来设置key.value 127.0.0.1:637 ...

随机推荐

  1. HTML5 web workes实现多线程

    对多线程来说尽量使用HTML5的WEB WORKER特性 HTML5中的Web Worker是使用多个线程并发执行Javascript程序.另外,这种特别的多线程实现能减少困惑开发者多年的,在其他平台 ...

  2. smarty中section遍历数组

    smarty中section遍历数组

  3. c语言 指针的值

    int num = 1; int *p = &num; printf("%x", &num);//打印 0x7dfe88 printf("\n%x&quo ...

  4. 20135306黄韧 附录A及第十章学习总结

    附录A  错误处理 A.1 Unix系统中的错误处理 1.Unix风格的错误处理 if ((pid = wait(NULL)) < 0) { fprintf(stderr,”wait error ...

  5. 5.HBase In Action 第一章-HBase简介(1.1.3 HBase的兴起)

    Pretend that you're working on an open source project for searching the web by crawling websites and ...

  6. VC6.0读取Excel文件数据

    啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售.单台设备图如下: 工作原理如下:整个设备大致可分为五个部分, 1.服务器,负责气象.发电等数据存取,电.网连接等处理: 2.气象站,通过 ...

  7. Bootstrap3.0学习第十九轮(JavaScript插件——标签页)

    详情请看 http://aehyok.com/Blog/Detail/46.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...

  8. Javascript基础系列之(三)数据类型 (布尔型 Boolean)

    javascript同样有布尔型,可选值,true or fasle. var marr = true ; document.write(typeof(marr) + "<br> ...

  9. 第五章:javascript:队列

    队列是一种列表,不同的是队列只能在末尾插入元素,在队首删除元素.队列用于存储按顺序排列的数据.先进先出.这点和栈不一样,在栈中,最后入栈的元素反被优先处理.可以将队列想象成银行排队办理业务的人,排队在 ...

  10. json_decode详解

    json_decode是php5.2.0之后新增的一个PHP内置函数,其作用是对JSON 格式的字符串进行编码.    json_decode的语法规则:json_decode ( string $j ...