redis中的list类型有点类似于编程语言中的数组,list类型如下图所示,实际上是一种双向链表结构,通过lpush、lpop、rpush、rpop这几个命令来控制链表中数据出入,所以list类型可以用作栈,也可以用作队列一样。

从元素插入和删除的效率来看,如果从链表的两头插入或删除元素,会非常的高效,即使链表中已经存储了上百万条的记录,也可以在很短的时间内完成。然而需要说明的是,如果元素插入或删除操作是作用于链表中间,那将会是非常低效的。相信对于有良好数据结构基础的开发者而言,这一点并不难理解。

因此, redis链表经常会被用于消息队列的服务,以完成多程序之间的消息交换。

以下是链表类型(list)的一些常用命令:

1.【 lpush key value 】 往队列头部插入一个元素

2.【 rpush key value 】 从尾部插入一个元素

3.【 lpop key 】 从队列头部删掉一个元素

4.【 rpop key 】 从队列尾部删掉一个元素,并返回被删除元素的值

5.【 llen 】 返回队列的长度,即里面有多少个元素。不存在key返回0,不为队列类型的key会返回报错。

6.【 lrange key start end 】 返回队列从start到end之间的元素信息。

7.【 ltrim key start end 】 截取一个队列,只保留指定区间内的元素。

redis中list类型详解及常用命令相关推荐

  1. Redis 数据类型 Strings 类型详解

    Redis 数据类型 Strings 类型详解 bitmap 操作 SETBIT • SETBIT key offset value 起始版本:2.2.0 时间复杂度:O(1) 设置或者清空key的v ...

  2. [转帖]Ipvsadm参数详解(常用命令)

    Ipvsadm参数详解(常用命令) 2013年11月29日 12:41:40 怀素1980 阅读数:15901 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  3. C++中size_type类型详解

    介绍 是和string类类型和vector类类型定义相关的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型 string抽象意义是字 ...

  4. Redis中事务用法详解

    在关系型数据库中,事务是指一组命令的集合,这组命令构成了一个原子操作,这个操作要么全部执行成功,要么全部执行失败.而在非关系型数据库 Redis 中并非这样- Redis 中的事务同样也是一组命令的集 ...

  5. [转载] java 中 date类型详解

    参考链接: Java中的date after()方法 举例: Date的after和before方法解释 Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时 ...

  6. 跳跃列表(Skip List)与其在Redis中的实现详解

    目录 引子 认识跳表 跳表的提出 由二叉树回归链表 设计思想与查找流程 插入元素的概率性 复杂度分析 Redis的跳表实现 从zset到zskiplist 创建zskiplist 向zskiplist ...

  7. Redis系列之key操作命令与Redis中的事务详解(六)

    From: http://www.cnblogs.com/knowledgesea/p/5008594.html 序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查 ...

  8. nvidia-smi各个参数详解以及常用命令

    1.nvidia-smi介绍 nvidia-sim简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,支持所有标准的NVIDIA驱动程序支持的Linux和WindowsSe ...

  9. Nmap命令详解及常用命令总结

    Nmap学习 文章目录 Nmap学习 0 Nmap 介绍 1 Nmap命令详解 1.1 Nmap 命令help详解(内附中文翻译) 1.2 Nmap 命令思维导图 2 Nmap 常见使用场景以及相关命 ...

最新文章

  1. 详解图像滤波原理及实现!
  2. .NET仓储模式高级用例
  3. 前端三部曲之Html -- 1(html的基本结构和常见的meta标签的作用)
  4. EntityFramework Core 3.x上下文构造函数可以注入实例呢?
  5. With you With me
  6. VS中生成、清理项目、调试、開始运行(不调试)、Debug 和 Release等之间的差别...
  7. 前几天入手一大菠萝,写个初始化教程
  8. topcoder srm 525 div1
  9. 架设WIN32汇编程序的开发环境
  10. elastaticresearch 学习过程
  11. SpringMVC之安全性(三)Twitter登入
  12. Atitit 标记语言ML(Markup Language) v4 目录 1. 标记语言ML Markup Language 1 1.1. 简介 1 2. 置标语言置标语言通常可以分为三类:标识性的
  13. C++ 操作PDFlib实例
  14. 脉冲耦合神经网络(PCNN)的python实现
  15. 读:H2-MIL: Exploring Hierarchical Representation with Heterogeneous Multiple Instance Learning for...
  16. saas系统和php mysql的区别_saas系统和传统erp的区别是什么?
  17. php 插件推荐,Typecho实用插件推荐(一)
  18. Android 使用ADB命令向上滑动解锁
  19. stormzhang的推荐!
  20. ucenter单点登录

热门文章

  1. 由降低系统之间的接口维护和升级的成本想到的。。。
  2. 如何升级PowerShell
  3. 巴西政府考虑用微软产品替换开源软件
  4. ActiveMQ学习总结(5)——Java消息服务JMS详解
  5. 南阳oj92--图像有用区域(Bfs)
  6. Windows 搭建 .NET 跨平台环境并运行应用程序
  7. Social Network 社交网络分析
  8. mongo系统(1)
  9. apache的php扩展名解析漏洞
  10. [导入]网易娱乐频道也在用风讯CMS