Redis 基础数据结构之二 list(列表)
将值从左到右依次插入到列表中:lpush books java python golang
将值从右到左依次插入到列表中:rpush books java python golang
取第几个位置的值(从0开始):lindex books 0(注意:在使用这个命令的时候,时间复杂度为O(n),因为列表本质是链表,所以当元素的个数多的时候,使用该命令效率比较慢)
注意:当后面的数字为负数时,表示为对应的倒数第几个,即 -1 表示倒数第一个
从左到右删除列表中的第一个元素:lpop books
从右到左删除列表中的第一个元素:rpop books
这里画一个图来说明一下元素插入的过程
注意:当列表中的元素使用lpop或rpop全部删除之后,该列表也会自动被删除,内存会被回收。
同理,使用rpush往列表中插入元素的过程是与上述图是相反的
注意:这里面用了一个命令keys * 这个命令是查看所有的key,不过一般不要使用这个命令,因为当key的数量非常多的时候,会影响redis的性能。
获取整个list中的指定区间的数据:lrange 0 -1
注意:第一个数字代表起始位置,第二个数字代表结束的位置(数字为负数时,即表示的对应的倒数第几个)
如果使用lpop或rpop删除列表中的全部元素会比较麻烦,尤其当列表中的元素非常多的时候;这个时候可以时候用ltrim删除列表中的全部元素,
命令为:ltrim books 1 0 (其中这个命令是保留的意思,第一个数字代表起始位置,第二个数字代表结束位置,即表示要保留的列表的区间,当第一个数字为1,第二个数字为零时,这个区间为负,即为全部删除列表中的元素;
也并不是只有1,0能全部删除列表中的元素,只要区间为负,都能删除 ,不过为了规范,还是用1和0)
#右边进左边出(队列)
rpush numbers 1 2 3 4 5 6
lpop numbers
#右边进右边出(栈)
rpush numbers 1 2 3 4 5 6
rpop numbers
获取列表中元素的个数:llen numbers
Redis 基础数据结构之二 list(列表)的更多相关文章
- redis基础数据结构及编码方式
redis基础数据结构和编码方式 一.基础数据结构 1)简单动态字符串 2)双端链表 3)字典 4)跳跃表 5)整数集合 6)压缩列表 二.对象类型与编码 在redis的数据库中创建一个新的键值对时, ...
- redis 基础数据结构实现
参考文献 redis数据结构分析 Skip List(跳跃表)原理详解 redis 源码分析之内存布局 Redis 基础数据结构与对象 Redis设计与实现-第7章-压缩列表 在redis中构建了自己 ...
- 1.基础: 万丈高楼平地起——Redis基础数据结构 学习记录
<Redis深度历险:核心原理和应用实践>1.基础: 万丈高楼平地起——Redis基础数据结构 学习记录http://naotu.baidu.com/file/b874e2624d3f37 ...
- Redis——基础数据结构
Redis提供了5种基础数据结构,分别是String,list,set,hash和zset. 1.String Redis所有的键都是String.Redis的String是动态字符串,内部结构类似J ...
- Redis基础数据结构
Redis数据库中每个键值对都是由对象( c 的结构体对象)组成的. 数据库键总是一个字符串对象(string object) 数据库键的值可以使字符串对象.列表对象(list object).哈希对 ...
- Redis 基础数据结构之一:string(字符串)
Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合),Redis存储数据的结构是键值对形式的. 首 ...
- Redis 基础数据结构与对象
Redis用到的底层数据结构有:简单动态字符串.双端链表.字典.压缩列表.整数集合.跳跃表等,Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包 ...
- 浅析Redis基础数据结构
Redis是一种内存数据库,所以可以很方便的直接基于内存中的数据结构,对外提供众多的接口,而这些接口实际上就是对不同的数据结构进行操作的算法,首先redis本身是一种key-value的数据库,对于v ...
- Redis基础数据结构-基于2.8
SDS SDS是Redis中String的底层数据结构,数据结构如下,SDS保留了传统的C字符串表达方式即数组的最后一个元素是'/0'结尾.此外还添加了两个字段len和free,其中len表示字符串长 ...
随机推荐
- .Net Core 3.1.2 区域路由配置【原创】
昨天遇到一个项目问题,新建的.NET core矿建在新建区域的MVC页面里面,无法通过路由找到页面.然后在网络上查询很多资料,发现都是千古文章一大抄,而且都是错误的. 后面又添加了3个专业技术群,同样 ...
- NB-IoT的PSM模式有什么优点
在NB-IoT系统中,PSM模式的优点是可进行长时间休眠,缺点是对终端接收(Mobile Terminated,MT)业务响应不及时,主要应用于远程抄表等对下行实时性要求不高的业务.实际上,物联网设备 ...
- [NOIP 2016D2T2/Luogu P1600] 天天爱跑步 (LCA+差分)
待填坑 Code //Luogu P1600 天天爱跑步 //Apr,4th,2018 //树上差分+LCA #include<iostream> #include<cstdio&g ...
- 如何使用捷映App制作朋友圈九宫格视频图片合集
在刷朋友圈的过程中,看到九宫格的视频图片合集,带有酷炫的音效和动效,展现效果非常好,那么我们该如何制作呢?下面我为大家介绍. 第一步,我们需要在各大应用市场搜索[捷映视频制作]App,点击[安装]. ...
- C#4语法新特性
C#4,.NET Framework 4.0, Visual Studio 2010 C#4.0新引进的语法基于.Net Framework 4.0.主要引进的语法:动态类型,命名参数.可选参数,优 ...
- JSP启动,错误500,实例化Servlet类异常
jps的页面报 HTTP 500 -Internal Server Error 实例化Servlet类[servlet.Userservler]异常 javax.servlet.ServletE ...
- 5 Post和Get
5 Post和Get GET和POST有什么区别?及为什么网上的多数答案都是错的 知乎回答 get: RFC 2616 - Hypertext Transfer Protocol -- HTTP/1. ...
- VirtualBox 6 安装 CentOS 7
1 安装环境 windows7 Oracle VM VirtualBox 6.0.24 CentOS 7 2 VirtualBox 6 - 虚拟机软件 2.1 下载 Oracle VM Virtual ...
- 腾讯云对象存储COS新品发布——智能分层存储,自动优化您的存储成本
近日,腾讯云正式发布对象存储新品--智能分层存储,能够根据用户数据的访问模式,自动地转换数据的冷热层级,为用户提供与标准存储一致的低延迟和高吞吐的产品体验,同时具有更低的存储成本. 熟悉数据存储的用户 ...
- Docker - 解决创建 tomcat 容器镜像却无法访问页面的问题
问题背景 查看 tomcat 镜像 docker images 运行并创建 tomcat 容器 docker -d -p 8888:8080 --name=tomcat2 tomcat:latest ...