Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-lists.html

Redis 列表(Lists)


Redis 中,list 数据结构是按照插入顺序的字符串链表,和数据结构中的普通链表一样,可以在其头部(left)和尾部(right)添加新的元素。

list 在插入时,如果该键不存在,redis 将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库删除,list 中可以包含最大元素数是 232-1 个元素(4294967295,大约40多亿个元素)。从元素插入和删除的效率来看,如果我们是在链表的两头插入或删除元素时,这将会是非常高效的操作,即使链表中已经存储了百万条记录,该操作也可以在常量时间内完成,然而需要说明的是,如果元素插入或删除操作是作用于链表中间,那将会是非常低效的。

Redis 列表命令

可用版本 命令及描述
>=2.0.0

BLPOP key [key ...] timeout

BLPOP 命令是 LPOP 命令的阻塞版本,当指定列表内没有任何元素可供获取时,连接将被 BLPOP 命令阻塞,直到等待超时或存在可获取元素为止。

>=2.0.0

BRPOP key [key ...] timeout

BRPOP 命令是 RPOP 命令的阻塞版本,当指定列表内没有任何元素可供获取时,连接将被 BRPOP 命令阻塞,直到等待超时或存在可获取元素为止。

>=2.2.0

BRPOPLPUSH source destination timeout

BRPOPLPUSH 是 RPOPLPUSH 的阻塞版本,当指定列表 source 不为空时,BRPOPLPUSH 的表现和 RPOPLPUSH 一样。

>=1.0.0

LINDEX key index

返回列表 key 中,下标为 index 的元素。

>=2.2.0

LINSERT key BEFORE|AFTER pivot value

表示将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。

>=1.0.0

LLEN key

返回指定列表的长度。

>=1.0.0

LPOP key

表示移除并返回列表 key 的头元素。

>=1.0.0

LPUSH key value [value ...]

表示将一个或多个值 value 插入到列表 key 的表头。

>=2.2.0

LPUSHX key value

表示将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。

>=1.0.0

LRANGE key start stop

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

>=1.0.0

LREM key count value

表示根据参数 count 的值,移除列表中与参数 value 相等的元素。

>=1.0.0

LSET key index value

将列表 key 下标为 index 的元素的值设置为 value。

>=1.0.0

LTRIM key start stop

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

>=1.0.0

RPOP key

表示移除并返回列表 key 的尾元素。

>=1.2.0

RPOPLPUSH source destination

在一个原子时间内,执行两个动作,一个是将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端;另一个是将 source 弹出的元素插入到列表 destination,作为 destination 列表的的头元素。

>=1.0.0

RPUSH key value [value ...]

表示将一个或多个值 value 插入到列表 key 的表尾。

>=2.2.0

RPUSHX key value

表示将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。

list类(class)位于builtins模块中,属于内置类,无需import模块就可直接使用,其实所有的列表都是该list内置类对象实例 ...
Redis 从 3.0 版本开始,官方支持集群模式(Cluster),它是一种服务器分片(Sharding)技术;集群的这种模式需要 CLU ...
Redis 中的 set 类型是一种无序集合,集合中的元素没有先后顺序,而且具有确定性、唯一性的特点。相比于前面介绍的 list 类型,se ...
在 es 使用中,开发者想配置自身业务中沉淀的同义词(synonyms)表,并基于该同义词库配置包含其的分析器(analyzer),主要分为 ...
基于 elasticsearch 构建的业务中最常用的聚合查询就是 terms aggregation,它基于 term 粒度的词或数字值进 ...