加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网_ASP源码网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Redis避不开的五种数据结构

发布时间:2018-10-23 14:07:04 所属栏目:建站 来源:编辑部的故事
导读:副标题#e# Redis 中有 5 种数据结构,分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),因为使用 Redis 场景的开发中肯定是无法避开这些基础结构的,所以熟练掌握它们也就成了一项必不可少的能力。本文章精要地介绍了 Redi

lpush 命令的返回值及用法和 rpush 命令一样。通过上面的事例证明了我们前面说的,rpush 命令和 lpush 命令的返回值并不是当前插入元素的个数,而是当前 key 中全部元素的个数,因为当前 key 中已经有了 3 个元素,所以我们在执行插入命令时,返回的就是 6 而不是 3,。

向某个元素前或者后插入元素

linsert key BEFORE|AFTER pivot value

Redis避不开的五种数据结构

linsert 命令在执行的时候首先会从当前列表中查找到 pivot 元素,其次再将这个新元素插入到 pivot 元素的前面或者后面。并且我们通过上图可以知道 linsert 命令在执行成功后也是会有返回值的,返回的结果就是当前列表中元素的个数。

2.查找

获取指定范围内的元素列表

lrange key start stop

Redis避不开的五种数据结构

lrange 命令会获取列表中指定索引范围的所有元素。

通过索引获取列表主要有两个特点:

索引下标从左到右分别是 0 到 N-1,从右到左是 -1 到 -N。

lrange 命令中的 stop 参数在执行时会包括当前元素,并不是所有的语言都是这样的。我们要获取列表中前两个元素则可以如下图所示:

Redis避不开的五种数据结构

获取列表中指定索引下标的元素

lindex key index

Redis避不开的五种数据结构

获取列表长度

llen key

Redis避不开的五种数据结构

3.删除

从列表左侧弹出元素

lpop key

Redis避不开的五种数据结构

lpop 命令执行成功后会返回当前被删除的元素名称。

从列表右侧弹出元素

rpop key

Redis避不开的五种数据结构

rpop 命令和 lpop 命令的使用方式一样。

删除指定元素

lrem key count value

lrem 命令会将列表中等于 value 的元素删除掉,并且会根据 count 参数来决定删除 value 的元素个数。

下面我们看一下 count 参数的使用说明:

count > 0:表示从左到右,最多删除 count 个元素。也就是如下图所示:

Redis避不开的五种数据结构

我们看上图中的命令中,虽然我们将 count 参数指定的是 5,将 value 参数指定的是 2,但由于当前列表中只有一个 2,所以,当前 lrem 命令最多只能删除 1 个元素,并且 lrem 命令也是有返回值的,也就是当前成功删除元素的个数。

Redis避不开的五种数据结构

count < 0:从右到左,最多删除 count 个元素。

Redis避不开的五种数据结构

count = 0:删除所有元素。

Redis避不开的五种数据结构

按照索引范围修剪列表

ltrim key start stop

ltrim 命令会直接保留 start 索引到 stop 索引的之间的元素,并包括当前元素,而之外的元素则都会删除掉,所以该命令也叫修剪列表。

Redis避不开的五种数据结构

并且有一点要注意,ltrim 命令不会返回当前的列表中元素的个数,而是返回改命令是否成功的状态。

4.修改

修改指定索引下标的元素

lset key index value

Redis避不开的五种数据结构

5.阻塞操作

blpop key [key ...] timeout

brpop key [key ...] timeout

blpop 和 brpop 命令是 lpop 和 rpop 命令的阻塞版本,它们除了弹出方向不同以外,使用方法基本相同。

key [key ...]:可以指定多个列表的键。

timeout:阻塞时间(单位:秒)

下面我们看一下该命令的详细使用。

(编辑:安卓应用网_ASP源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读