Redis学习笔记(四)——数据结构之List
一、介绍
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的更多相关文章
- StackExchange.Redis学习笔记(四) 事务控制和Batch批量操作
Redis事物 Redis命令实现事务 Redis的事物包含在multi和exec(执行)或者discard(回滚)命令中 和sql事务不同的是,Redis调用Exec只是将所有的命令变成一个单元一起 ...
- Redis学习笔记四:独立功能之发布与订阅
客户端可以通过执行 subscribe 命令订阅一个或多个频道,每当有其他客户端向被订阅的频道发送消息时,频道所有的订阅者都会收到这条消息. 客户端还可以通过执行 psubscribe 命令订阅一个或 ...
- Redis 学习笔记四 Mysql 与Redis的同步实践
一.测试环境在Ubuntu kylin 14.04 64bit 已经安装Mysql.Redis.php.lib_mysqludf_json.so.Gearman. 点击这里查看测试数据库及表参考 本文 ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- Redis学习笔记(1)——Redis简介
一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
- Redis学习笔记(二) Redis 数据类型
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
随机推荐
- redis 的基本使用
Linux上查看redis是否运行 ps -ef | grep redis 还能查看到Linux的安装路径. set rediskey redisvalue 在redis里面存储了一个名称为r ...
- Typecho反序列化漏洞
Typecho Typecho是一款快速建博客的程序,外观简洁,应用广泛.这次的漏洞通过install.php安装程序页面的反序列化函数,造成了命令执行,Typecho 1.1(15.5.12)之前的 ...
- 从SpringBoot源码看资源映射原理
前言 很多的小伙伴刚刚接触SpringBoot的时候,可能会遇到加载不到静态资源的情况. 比如html没有样式,图片无法加载等等. 今天王子就与大家一起看看SpringBoot中关于资源映射部分的主要 ...
- Linux常用字段
cd 切换路径 vim,vi 打开文档 ls 查看文件信息 chmod 修改文件或目录的权限 useradd 添加用户 cat 查看纯文本文件(少内容) rm 删除文件或目录 mv 剪切文件或文件重 ...
- 关于JAVA的垃圾回收机制
使用JAVA编程时,几乎不需要考虑"内存泄漏"的问题,这也是JAVA相较于C++的一个优点. 最近在看<Java编程思想>(第四版,听说第五版有点牛逼....),里面讲 ...
- jdk在linux下安装、配置环境变量
1.jdk下载: 下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 2. 3. 4.解压jdk到/usr/loca ...
- LVM的简单使用及常用的命令总结
Lvm的简单使用及常用的命令总结 centos7中默认使用的是xfs文件系统,此文件系统的特点,可以另外查找资料,这里说一下对文件系统的扩容: 1.先看一下没扩容之前的分区大小 2.添加一块新磁盘,并 ...
- Linux系统编程 —时序竞态
时序竞态 什么是时序竞态?将同一个程序执行两次,正常情况下,前后两次执行得到的结果应该是一样的.但由于系统资源竞争的原因,前后两次执行的结果有可能得到不一样的结果,这个现象就是时序竞态. pause函 ...
- Mac系统下的zip压缩包解压到Windows下出现乱码的解决方法
环境变量 环境变量是具有特殊名字的一个特定对象,包含了一个或多个应用程序运行所需的信息.(例如PATH,可执行程序的搜索路径,当要求系统运行一个程序,而没告诉系统它的具体路径时,系统就要在PTAH值的 ...
- 基于COCA词频表的文本词汇分布测试工具v0.1
美国语言协会对美国人日常使用的英语单词做了一份详细的统计,按照日常使用的频率做成了一张表,称为COCA词频表.排名越低的单词使用频率越高,该表可以用来统计词汇量. 如果你的词汇量约为6000,那么这张 ...