Redis列表是简单的字符串列表,列表是有序的,列表中的元素可以重复。

可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (40多亿)。

1、lpush key value1 value2 .....    //往列表的头部(左边)推入一个或多个元素,lpush的l表示left。key是列表名称,把列表中的所有元素作为一个整体(value)。若key不存在,会自动创建。

示例:

lpush students "zhangsan" "lisi" "wangwu"       //返回操作后列表中的总元素个数

先在列表头部添加“zhangsan”,再在列表头部添加“lisi”,接着在列表头部添加“wangwu”,最后列表的前三个元素依次是"wangwu"、“lisi”、“zhangsan”。

2、lpushx key value1 value2 ......    //同上,只是key不存在时,不执行操作(不会自动创建)。要key已存在且key时list类型时才会添加元素。

3、lpop key   //弹出列表的第一个元素,会从列表中移除并返回该元素。

l表示left,列表的头部。

4、rpush key value1 value2 ....    //在列表尾部推入1个或多个元素。

5、rpushx key value1 value2 .....     //尾部,key已存在时才会推入。

6、rpop    //弹出列表的最后一个元素

r表示right,列表的尾部。

上面的l、r命令是一一对应的。

7、rpoplpush sourceKey destKey   //弹出sourceKey的最后一个元素,并在destKey的头部推入元素,即剪切。返回该元素。rpoplpush即对sourceKey执行rpop,对destKey执行lpush。

8、blpop  key1  key2  ....   timeout    //弹出一个或多个的列表的第一个元素,如果列表为空会阻塞列表直到等待超时或发现可弹出元素为止。blpop即bind  lpop。

示例: blpop students     //60s

9、brpop  key1  key2 .....   timeout

10、brpoplpush  sourceKey  destKey   timeout

11、llen  key    //返回列表中的元素个数

12、lset  key  index  value    //给指定索引处的元素设置值(即修改元素值)

13、lindex  key  index   //根据index索引元素,返回指定位置上的元素

14、lrange  key start  end    //返回[start,end]区间上的所有元素。start、end是索引,比如0  -1  就是返回所有元素。

15、ltrim key start  end   //修剪列表,只保留[start,end]区间上的元素,其余元素会被删除。

16、linsert  key  before/after  value1  value2    //在元素value1之前/之后插入元素value2。value2是要插入的元素。

示例: linsert student before "lisi" "zhangsan"     //在lisi的前面插入zhangsan

插入成功,返回操作后列表的总长度;若value1不存在,返回-1;若key不存在或key是一个空的list,则返回0.

17、lrem  key  count  value  //移除列表中值为value的所有元素。lrem即list remove。count是一个整数,表示要删除的个数、搜索方向。

count>0:从表头向表尾搜索,移除count个值为value的元素

count<0:从表尾向表头搜索,移除count的绝对值个值为value的元素

count=0:移除表中所有的值为value的元素。要遍历列表,从哪边开始结果、速度都是一样的。

示例: lrem scores     移除列表中所有的90

以上几个命令中,l表示list。index从0开始,支持负数索引,index要是已存在的

Redis的区间,都是闭区间,[start,end],两边都包含。

Redis list(列表)的更多相关文章

  1. Redis压缩列表原理与应用分析

    摘要 Redis是一款著名的key-value内存数据库软件,同时也是一款卓越的数据结构服务软件.它支持字符串.列表.哈希表.集合.有序集合五种数据结构类型,同时每种数据结构类型针对不同的应用场景又支 ...

  2. redis数据类型-列表类型

    列表类型 列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段. 列表类型内部是使用双向链表(double linked list)实现的,所以向 ...

  3. redis学习-列表(list)常用命令

    redis学习-列表(list)常用命令   lpush:从列表左侧头部添加数据 rpush:从右侧尾部添加数据 lpop:从给左侧头部取出一个元素 rpop:从右侧尾部取出一个元素 lrange:取 ...

  4. Redis 操作列表数据

    Redis 操作列表数据: > lpush list1 "aaa" // lpush 用于追加列表元素,默认追加到列表的最左侧(left) (integer) > lp ...

  5. redis rpoplpush列表转移元素

    文档出处:redisdoc.com/list/rpoplpush.html模式: 安全的队列 Redis的列表经常被用作队列(queue),用于在不同程序之间有序地交换消息(message).一个客户 ...

  6. Redis压缩列表

    此篇文章是主要介绍Redis在数据存储方面的其中一种方式,压缩列表.本文会介绍1. 压缩列表(ziplist)的使用场景 2.如何达到节约内存的效果?3.压缩列表的存储格式 4. 连锁更新的问题  5 ...

  7. Redis之列表类型命令

    Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967 ...

  8. C#操作Redis List 列表

    /// <summary> /// Redis 列表 /// </summary> public static void Redis_List() { RedisClient ...

  9. Redis对象——列表(List)

    列表(list)类型是用来存储多个有序的字符串,列表中的每个字符串称为元素(element),一个列表最多可以存储232-1个元素.在Redis中,可以对列表两端插入(push)和弹出(pop),还可 ...

  10. 面试官:Redis中列表的内部实现方式是什么?

    在面试间里等候时,感觉这可真暖和呀,我那冰冷的出租屋还得盖两层被子才能睡着.正要把外套脱下来,我突然听到了门外的脚步声,随即门被打开,一位眉毛弯弯嘴唇红红的小姐姐走了进来,甜甜的香水味立刻钻进了我的鼻 ...

随机推荐

  1. 【bzoj1232】[Usaco2008Nov]安慰奶牛cheer

    问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是一个奶牛的家.FJ计划除去P条道路中尽可能多的道路, ...

  2. poj2392磊石头——排序后背包

    题目: 首先按限制高度从小到大排序,不会影响可行解,而不排序可能卡掉正确的情况: 用%2滚动数组时一定注意每次复制上一种情况,因为这个WA了好几次. 代码如下: #include<iostrea ...

  3. WPF中Visible设为Collapse时,VisualTreeHelper.GetChildrenCount为0

    今天遇到一个奇怪的问题, 在给一个控件内的子元素绑定事件时,失败. 发现原因是,这个控件初始化时Visible="Collapse",这时控件内的可视树就没有生成.导致绑定事件失败 ...

  4. struts2的使用知识点

    最开始学习java的时候学习过struts,但是对配置和struts的理解深度不够,现在工作虽然再用,但是自己搭建环境和使用心得始终很零散,所以现在决定重新理一遍,有条理的学习一下struts. 至于 ...

  5. java:Socket介绍(一)

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单 ...

  6. openstack 虚拟机添加网卡

    Openstack dashborad是没有给虚拟机添加网卡这个功能的,但是后台是有这行的接口的. 首先我们创建一个虚拟机,这个虚拟机制11.11.11网段的如图:

  7. <正则吃饺子> :关于redis配置文件参数详解

    来源于网络博文,感谢作者的分享,转载只为学习,方便查找,原文地址:http://blog.csdn.net/ljl890705/article/details/51540427 Redis是一个应用非 ...

  8. JavaScript高级程序设计学习笔记第八章--BOM

    1.间歇调用和超时调用: 超时调用:需要使用 window 对象的 setTimeout()方法,它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒).其中,第一个参数可以 ...

  9. Zookeeper发布订阅之SpringBoot+Mybatis多数据源

    1.前言 数据发布/订阅系统,即所谓的配置中心,顾名思义就是发布者将数据发布到Zookeeper的一个或一系列节点上,供订阅者进行数据订阅,进而达到动态获取数据的目的,实现配置信息的集中管理和数据的动 ...

  10. 读取静态Json文件

    创建web项目: string Json = string.Empty; string filePath = Server.MapPath("/***.json");//根目录下的 ...