加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 海宁网 (https://www.hainingwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Redis避不开的五种数据结构

发布时间:2018-10-30 17:53:33 所属栏目:编程 来源:编辑部的故事
导读:Redis 中有 5 种数据结构,分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),因为使用 Redis 场景的开发中肯定是无法避开这些基础结构的,所以熟练掌握它们也就成了一项必不可少的能力。本文章精要地介绍了 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:阻塞时间(单位:秒)

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

列表为空:如果 timeout=3,则表示客户端等待 3 秒后才能返回结果,如果 timeout=0,则表示客户端会一直等待,也就是会阻塞。

Redis避不开的五种数据结构

由于我期间向列表中插入了元素,否则上述命令将一直阻塞下去。

列表不为空:如果 timeout=0,并且列表不为空时,则 blpop 和 brpop 命令会立即返回结果,不会阻塞。

Redis避不开的五种数据结构

下面我们看一下 blpop 和 brpop 命令的注意事项。

(编辑:财气旺网 - 海宁网)

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