理解Redis数据类型

Redis支持的数据类型概述

Redis 是一个数据结构服务器。 其核心是,Redis 提供了一系列原生数据类型,帮助您解决从缓存队列再到 事件处理的各种问题。 以下是每种数据类型的简短描述,并附有更广泛概述和命令参考的链接。 每个概述都包括一个包含代码示例的全面教程。

核心数据类型

Redis Community Edition 实现了以下数据类型:

Redis StackRedis Enterprise 还包括一些扩展模块,这些模块实现了其他 有用的类型,例如 JSON。请参阅扩展数据类型 以获取完整列表。

字符串

Redis strings 是最基本的 Redis 数据类型,表示一个字节序列。 更多信息,请参阅:

列表

Redis lists 是按插入顺序排序的字符串列表。 更多信息,请参见:

集合

Redis sets 是无序的唯一字符串集合,它们的行为类似于您最喜欢的编程语言中的集合(例如,Java HashSetsPython sets 等)。 使用 Redis 集合,您可以在 O(1) 时间内(换句话说,无论集合元素的数量如何)添加、删除和测试存在性。 有关更多信息,请参阅:

哈希

Redis hashes 是作为字段-值对集合建模的记录类型。 因此,Redis hashes 类似于 Python 字典Java HashMapsRuby hashes。 更多信息,请参阅:

有序集合

Redis sorted sets 是唯一字符串的集合,通过每个字符串的关联分数来维持顺序。 更多信息,请参阅:

一个Redis流是一种数据结构,其行为类似于仅追加日志。 流有助于按事件发生的顺序记录事件,然后将它们分发以进行处理。 有关更多信息,请参阅:

地理空间索引

Redis 地理空间索引 对于查找给定地理半径或边界框内的位置非常有用。 有关更多信息,请参阅:

位图

Redis bitmaps 允许你对字符串执行位操作。 更多信息,请参阅:

位域

Redis bitfields 高效地在字符串值中编码多个计数器。 位字段提供原子性的获取、设置和递增操作,并支持不同的溢出策略。 更多信息,请参阅:

扩展数据类型

Redis StackRedis Enterprise 包含一些扩展模块,这些模块实现了 以下数据类型:

这些默认不包含在 Redis Community Edition中。 有关Redis Community Edition原生支持的类型列表,请参见 Core data types

JSON

Redis JSON 提供了 结构化的、分层的数组和键值对象,这些对象与流行的 JSON 文本文件格式相匹配。您可以将 JSON 文本导入 Redis 对象中,并访问、 修改和查询单个数据元素。 有关更多信息,请参阅:

概率数据类型

这些数据类型允许您以一种近似但高效的方式收集和计算统计数据。以下类型可用:

HyperLogLog

Redis HyperLogLog 数据结构提供了对大型集合基数(即元素数量)的概率估计。更多信息,请参阅:

布隆过滤器

Redis Bloom filters 允许你检查一个元素是否存在于一个集合中。更多信息,请参阅:

布谷鸟过滤器

Redis Cuckoo filters 允许你检查集合中是否存在某个元素。它们与 Bloom filters 类似,但在功能和性能之间有不同的权衡。更多信息,请参见:

t-digest

Redis t-digest 结构从数据值流中估计百分位数。更多信息,请参见:

Top-K

Redis Top-K 结构估计数据点在值流中的排名。 有关更多信息,请参阅:

Count-min 草图

Redis Count-min sketch 估计数据点在值流中的频率。 更多信息,请参阅:

时间序列

Redis time series 结构允许您存储和查询带有时间戳的数据点。 有关更多信息,请参阅:

添加扩展

要扩展包含的数据类型提供的功能,请使用以下选项之一:

  1. 编写您自己的自定义Lua服务器端函数
  2. 使用modules API编写你自己的Redis模块,或者查看community-supported modules
  3. 使用JSONsearchtime series以及Redis Stack提供的其他功能。
RATE THIS PAGE
Back to top ↑