Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis 列表(Lists)


Redis 中,list 数据结构是按照插入顺序的字符串链表,和数据结构中的普通链表一样,可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键不存在,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 存在并且是一个列表。