Redis 有别于其他键值(key-value)存储的一个关键特性是它支持多种数据类型,包括字符串(string)、列表(list)、集合(set)、排序集合(sorted set)和哈希(hash)。这使开发人员更容易解决问题,因为他们往往知道每项工作要使用哪种数据类型。本文将概述 Redis 支持的六种数据类型。
String
Redis 将字符串存储为字节序列。Redis 中的字符串是二进制安全的,这意味着它们的长度是固定的,而不是由一个或多个特殊终止字符决定。因此,一个字符串可以存储最多 512 MB 的数据。
在 Navicat for Redis 中,我们可以在主菜单中选择“编辑”->“添加键”来创建新的键值对。这将在数据视图中添加一个新的空行并打开编辑器:
我们可以使用编辑器来设置以下信息:
- 键名
- 键类型
- 值
- TTL(生存时间)
点击“应用”按钮会将“编辑器”表单的内容填入新行。它还显示值的大小:
Hash
在 Redis 中,hash 是一个键值对的集合。因此,它们是表示对象和存储计数器分组等的不错选择。每个 hash 最多可以存储 2^32 - 1 个字段-值对(超过 40 亿个!)。
对于 hash 值,Navicat 编辑器有一个以“字段”和“值”列组成的表:
List
Redis List 只是字符串列表,按添加顺序排序。你可以将元素添加到 Redis 列表的头部或尾部。列表的最大长度为 2^32 - 1,即 4294967295 个元素(每个列表可以有超过 40 亿个元素!)。
在 Navicat 编辑器中,list 值表示为“元素”。点击“元素”右侧的省略号 [...] 按钮将打开一个特殊的编辑器,你可以在其中输入完整的列表:
Set
Redis Set 是一个无序的字符串集合。Set 与 list 类似,不同之处在于 Set 不允许重复项并且不保留插入顺序。
Set 也可以排序。在有序集合(Sorted Set)中,每个成员都与一个分数(score)相关联,按分数值从最小到最大的顺序排列有序集合。虽然成员是唯一的,但分数却可以重复。
Navicat 处理 Set 的方式与处理 List 的方式非常相似。以下是一个例子:
在“键类型”下拉列表中,“zset”就是有序集合:
Stream
Redis stream 数据类型是在 Redis 5.0 中引入的。Stream 模拟了一个日志数据结构,但也实现了多个操作以克服典型仅附加日志的一些限制。
是的,Navicat for Redis 支持 Stream 数据类型!
关于 Redis 数据类型的结语
本文概述了 Redis 支持的六种数据类型,包括新的 Stream 类型。
有兴趣尝试 Navicat for Redis 吗?你可以在 这里 下载功能完整的试用版,并试用 14 天。