一  lists类型及操作

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

二 lists类型的使用

1. lpush

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

  1. redis 127.0.0.1:> lpush mylist1 world
  2. (integer)
  3. redis 127.0.0.1:> lpush mylist1 hello
  4. (integer)
  5. redis 127.0.0.1:> lrange mylist1 -
  6. ) "hello"
  7. ) "world"

2. rpush

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

  1. 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的特定位置前或后添加字符串。

  1. 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中指定下标的元素值。

  1. redis 127.0.0.1:> rpush mylist5 world
  2. (integer)
  3. redis 127.0.0.1:> lset mylist5 hello
  4. OK
  5. redis 127.0.0.1:> lrange mylist5 -
  6. ) "hello"

5 lrem

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

  1. redis 127.0.0.1:> rpush mylist6 hello
  2. (integer)
  3. redis 127.0.0.1:> rpush mylist6 hello
  4. (integer)
  5. redis 127.0.0.1:> lrem mylist6 hello
  6. (integer)

6 ltrim

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

  1. 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的头部删除元素,并返回删除元素。

  1. 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的头部。

  1. redis 127.0.0.1:> rpush mylist12 one
  2. (integer)
  3. redis 127.0.0.1:> rpush mylist12 two
  4. (integer)
  5. redis 127.0.0.1:> rpush mylist13 aaa
  6. (integer)
  7. redis 127.0.0.1:> rpush mylist13 bbb
  8. (integer)
  9. redis 127.0.0.1:> rpush mylist13 ccc
  10. (integer)
  11. redis 127.0.0.1:> rpoplpush mylist12 mylist13
  12. "two"
  13. redis 127.0.0.1:> lrange mylist12 -
  14. ) "one"
  15. redis 127.0.0.1:> lrange mylist13 -
  16. ) "two"
  17. ) "aaa"
  18. ) "bbb"
  19. ) "ccc"

9 lindex

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

  1. 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的长度。

  1. 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. tp2.2.2新特点

    1.不需要在配置文件中配置URL_MODEL变量就可以用普通模式和路径模式及兼容模式访问URL,但重写模式不可以. 2.当访问的URL地址没有指明具体动作(控制器里的方法)的时候,如果该控制器对应的视 ...

  2. 实战 SQL Server 2008 数据库误删除数据的恢复

    SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery m ...

  3. C# 版本的 计时器类:精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出

    class TimeCount { // 临时变量,存放当前类能表示的最大年份值 ; /// <summary> /// 获取毫秒能表示的最大年份数 /// </summary> ...

  4. Sql语句里的递归查询

    Sql语句里的递归查询 SqlServer2005和Oracle 两个版本 以前使用Oracle,觉得它的递归查询很好用,就研究了一下SqlServer,发现它也支持在Sql里递归查询举例说明:Sql ...

  5. list to csv

    import csv # ============================== # list to csv # ============================== a = [1,2, ...

  6. Android View事件机制 21问21答

    原文: http://www.cnblogs.com/punkisnotdead/p/5179115.html#3358859 1.View的坐标参数 主要有哪些?分别有什么注意的要点? 答:Left ...

  7. IOS开发之—— model最原始的封装,MJExtension加入工程(后续model都继承于它)

    DMBasicDataModel.h #import <Foundation/Foundation.h> @interface DMBasicDataModel : NSObject - ...

  8. TranslateAnimation 使用详解

    Android JDK为我们提供了4种动画效果,分别是: AlphaAnimation,RotateAnimation, ScaleAnimation, TranslateAnimation.今天我想 ...

  9. ROM存储1/4周期正弦信号构造DDS

    上周的时候,老师让编写一个简单的dds程序,本文说明了整个过程中我遇到问题以及一些个人的思考.初次接触FPGA,如有问题请多多指教~ 1.几个疑问,解决和没有解决的. 为何采用ROM而不是直接采用DD ...

  10. (旧)子数涵数·Flash——Flash Player的操作命令

    一.什么是Flash Player? Flash Player就是官方指定的一种FLash播发器. 用百度的话来讲,Adobe Flash Player 是一款高级客户端运行时使用的播放器.它短小精悍 ...