浅谈redis Stream 以及namespace

459 阅读2分钟

这是我参与2022首次更文挑战的第5天,活动详情查看2022首次更文挑战

redis的介绍我会后面专门写一篇文章来描述,具体讲讲redis的优势,为什么快,为什么最早是单线程,后面又为何引入多线程。

今天简单来说一下Redis 5.0新引用的Stream数据类型,以及namespace。

首先来讲 Stream,Stream 是 Redis 5.0 引入的一种新数据类型,它以更抽象的方式对日志数据结构进行建模。 然而,日志的本质仍然是完整的:就像日志文件一样,通常实现为以仅追加模式打开的文件,Redis Streams 主要是一种仅追加数据结构。至少在概念上,因为作为一种在内存中表示的抽象数据类型,Redis Streams 实现了强大的操作来克服日志文件的限制。

使 Redis 流成为最复杂的 Redis 类型的原因,尽管数据结构本身非常简单,但它实现了额外的、非强制性的特性:一组阻塞操作允许消费者等待生产者添加到流中的新数据,除此之外还有一个叫做Consumer Groups的概念。

消费者组最初是由流行的消息传递系统 Kafka (TM) 引入的。Redis 用完全不同的术语重新实现了一个类似的想法,但目标是相同的:允许一组客户端合作使用同一消息流的不同部分。

这里只对Stream只做一点概念上的描述,后面有时间专门写一篇使用篇。

接着我们来聊聊以及namespace,你是否好奇过redis可视化工具(比如 redis desktop manager)这种,在可视化工具中某些key会自动折叠收缩?

例如工作中发现redis 中存储的数据过多,看起来很不方便,无意中看到了session在redis中存的方式:

在这里插入图片描述

索性就想将自己的存入redis中的数据像这样展示,一来方便查找,二来也比较美观。

查询了资料原来是redis key命名的方式导致的。如果你的key命名为XX:XX:XX

在这里插入图片描述

你就会得到这样一个key

在这里插入图片描述