一、介绍

  Redis列表(List)是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(left)或者尾部(right),一个列表最多可以包含232-1个元素(4294967295,每个列表超过40亿个元素)。

  基本命令:

  blpop key [key2 ...] timeout(移除并获取列表的第一个元素,如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)

  brpop key [key2 ...] timeout(移除并获取列表最后一个元素,同上)

  brpoplpush source destination timeout (从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)

  lindex key index (通过索引获取列表中的元素)

  linsert key before|after pivot value (在列表的元素前或后插入元素)

  llen key (获取列表长度)

  lpop key (移除并获取列表的第一个元素)

  lpush key value [value2 ...] (将一个或多个值插入到列表头部)

  lpushx key value [value2 ... ] (为已存在的列表将一个或多个值插入到列表头部)

  lrange key start stop (获取列表指定范围内的元素)

  lrem key count value   (移除列表元素)

  lset key index value (通过索引设置列表元素的值)

  ltrim key start stop  (对一个列表进行修剪,就是说让列表只保留指定区间内的元素,不在指定区间之内的元素都被删除)

  rpop key  (移除并获取列表最后一个元素)

  rpoplpush source destination  (移除列表最后一个元素,并将该元素添加到另一个列表并返回)

  rpush key value [value2 ...]  (向列表最后中添加一个或多个值)

  rpushx key value  (为已存在的列表添加值)

二、操作

  1、lpush key value [value2 ...] (向列表头部中添加一个或多个值)

  

  显示结果:

  

  每次添加的value都是在头部添加。

  2、rpush key value [value2 ...] (向列表尾部中添加一个或多个值)

  

  显示结果:

  

  每次添加的value都是在尾部添加。

  3、lrange key start stop (获取列表指定范围内的元素)

  start: 0 = 从位置0开始

  stop: -1 = 集合最后一个位置

  

  4、lpushx key value [value2 ... ] (为已存在的列表将一个或多个值插入到列表头部)

  如果集合不存在,返回0

  

  

  5、rpushx key value [value2 ... ] (为已存在的列表将一个或多个值插入到列表尾部)

  如果集合不存在,返回0

  

  6、blpop key [key2 ...] timeout(移除并获取列表的第一个元素,如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)

  

  如果List里面有元素,则会返回两个元素,第一个弹出的元素是所属的key,第二个元素是被弹出元素的值;

  如果List里面没有元素,为空的话,会返回一个nil,命令后参数跟着的100是,如果List是空,100秒后返回nil。

  7、blpop key [key2 ...] timeout  (同brpop)

  

  8、lpop key  (移除并获取列表的第一个元素)

  

  9、rpop key  (移除并获取列表的最后一个元素)

  

  10、brpoplpush source destination timeout (从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止)

  被弹集合有元素情况下:

  

  被谈集合无元素情况下:

  

11、rpoplpush source destination  (移除列表最后一个元素,并将该元素添加到另一个列表并返回)

  被弹集合有元素情况下:

  

  被弹集合无元素情况下:

  

12、llen key (获取列表长度)

  

13、lindex key index (通过索引获取列表中的元素)

  

14、linsert key before|after pivot value (在列表的元素前或后插入元素)

  (before)在指定元素前插入元素:

  

  (after)在指定元素后插入元素:

  

15、lrem key count value   (移除列表元素)

  可以删除指定数量的元素

  

16、lset key index value (通过索引设置列表元素的值)

  

17、ltrim key start stop  (对一个列表进行修剪,就是说让列表只保留指定区间内的元素,不在指定区间之内的元素都被删除)

  

  

  

  

Redis学习笔记(四)——数据结构之List的更多相关文章

  1. StackExchange.Redis学习笔记(四) 事务控制和Batch批量操作

    Redis事物 Redis命令实现事务 Redis的事物包含在multi和exec(执行)或者discard(回滚)命令中 和sql事务不同的是,Redis调用Exec只是将所有的命令变成一个单元一起 ...

  2. Redis学习笔记四:独立功能之发布与订阅

    客户端可以通过执行 subscribe 命令订阅一个或多个频道,每当有其他客户端向被订阅的频道发送消息时,频道所有的订阅者都会收到这条消息. 客户端还可以通过执行 psubscribe 命令订阅一个或 ...

  3. Redis 学习笔记四 Mysql 与Redis的同步实践

    一.测试环境在Ubuntu kylin 14.04 64bit 已经安装Mysql.Redis.php.lib_mysqludf_json.so.Gearman. 点击这里查看测试数据库及表参考 本文 ...

  4. Redis学习笔记一:数据结构与对象

    1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...

  5. Redis学习笔记(1)——Redis简介

    一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...

  6. Redis学习笔记(二) Redis 数据类型

    Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...

  7. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  8. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  9. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  10. Redis学习笔记7--Redis管道(pipeline)

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...

随机推荐

  1. volatile关键字解释和使用

    一.java内存模型的相关概念:原子性.可见性与有序性 原子性: 原子是世界上的最小单位,具有不可分割性.比如 a=0:(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原 ...

  2. ZooKeeper学习(一)了解ZooKeeper

    一.什么是ZooKeeper ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理.统一命名服务.分布式锁.集群管理. 使用分布式系统就无法避免对节点管理的问题(需要实时 ...

  3. Spring学习(二)Spring IoC 和 DI 简介

    一.IOC(控制反转) 定义:反转控制 (Inversion Of Control)的缩写,即创建对象的反转控制. 正向控制:若要使用某个对象,需要自己去负责对象的创建. 反向控制:若要使用某个对象, ...

  4. 加权图的最小生成树、最短路径算法 - java实现

    加权图相关算法 前言 本文主要介绍加权图算法中两个重要应用:最小生成树和最短路径. 求最小生成树时针对的是加权无向图,加权有向图的最小生成树算法成为"最小属树形图"问题,较为复杂, ...

  5. Android开发中导入第三方库所遇问题记录

    1.重复循环依赖的问题 (1)需求 如下图所示: 在Android 项目中,采用模块化开发,一个是主跑application--Mudule A,另外一个是library--Library B 1)M ...

  6. Go 指针相关

    Go指针 Go语言中的指针非常简单,没有偏移和运算,只需要记住两个符号.&取变量地址与*根据地址取值. 以下是一个简单的示例: package main import ( "fmt& ...

  7. mysql-2-where

    #进阶2:条件查询 /* 语法: SELECT 查询列表 FROM 表名 WHERE 筛选条件 分类: 1.按条件表达式筛选:> < = != <> >= <= 2 ...

  8. EM 算法 Expectation Maximization

  9. python数据结构之二叉树的遍历实例

    遍历方案   从二叉树的递归定义可知,一棵非空的二叉树由根结点及左.右子树这三个基本部分组成.因此,在任一给定结点上,可以按某种次序执行三个操作:   1).访问结点本身(N)   2).遍历该结点的 ...

  10. TCHAR数据类型介绍

    转载:https://blog.csdn.net/mousebaby808/article/details/5259944 并不是所有的Windows操作系统都支持UNICODE编码的API(例如早期 ...