了解 Redis 数据类型
Redis 支持的数据类型概述
Redis 是一个数据结构服务器。 Redis 的核心是提供了一组原生数据类型,可帮助您解决各种问题,从缓存到排队再到事件处理。 以下是每种数据类型的简短说明,以及指向更广泛的概述和命令参考的链接。 每个概述都包含一个包含代码示例的综合教程。
核心数据类型
Redis 社区版实现以下数据类型:
Redis Stack 和 Redis Enterprise 还包括一些扩展模块,这些模块实现了其他 有用的类型,例如 JSON。有关完整列表,请参阅 Extension 数据类型。
字符串
Redis 字符串是最基本的 Redis 数据类型,表示一个字节序列。 有关详细信息,请参阅:
列表
Redis 列表是按插入顺序排序的字符串列表。 有关详细信息,请参阅:
集
Redis 集是唯一字符串的无序集合,其作用类似于您最喜欢的编程语言(例如,Java HashSets、Python 集等)中的集合。 使用 Redis 集,您可以在 O(1) 时间内添加、删除和测试是否存在(换句话说,无论设置的元素数量如何)。 有关详细信息,请参阅:
散 列
Redis 哈希是建模为字段-值对集合的记录类型。 因此,Redis 哈希类似于 Python 字典、Java HashMaps 和 Ruby 哈希。 有关详细信息,请参阅:
排序集
Redis 排序集是唯一字符串的集合,它们按每个字符串的关联分数保持顺序。 有关详细信息,请参阅:
流
Redis 流是一种数据结构,其作用类似于仅追加日志。 流有助于按事件发生的顺序记录事件,然后联合它们进行处理。 有关详细信息,请参阅:
地理空间索引
Redis 地理空间索引可用于查找给定地理半径或边界框内的位置。 有关详细信息,请参阅:
位图
Redis 位图允许您对字符串执行按位运算。 有关详细信息,请参阅:
位域
Redis 位域可以有效地将多个计数器编码为字符串值。 位域提供原子 get、set 和 increment作,并支持不同的溢出策略。 有关详细信息,请参阅:
- Redis 位域概述
- 这
BITFIELD
命令。
扩展数据类型
Redis Stack 和 Redis Enterprise 包含一些实现 以下数据类型:
默认情况下,Redis 社区版不包含这些内容。 有关以下类型的类型列表,请参阅核心数据类型 Redis 社区版原生支持。
JSON 格式
Redis JSON 提供 匹配的结构化分层数组和键值对象 流行的 JSON 文本文件 格式。您可以将 JSON 文本导入 Redis 对象并访问、 修改和查询单个数据元素。 有关详细信息,请参阅:
概率数据类型
这些数据类型允许您以某种方式收集和计算统计数据 这是近似值,但效率很高。以下类型包括 可用:
超日志
Redis HyperLogLog 数据结构提供了大型集合的基数(即元素数量)的概率估计。有关详细信息,请参阅:
布隆过滤器
Redis Bloom 筛选器允许您检查集合中是否存在元素。了解更多 信息,请参阅:
布谷鸟过滤器
Redis Cuckoo 过滤器允许您检查集合中是否存在元素。它们类似于 Bloom 过滤器,但功能之间的权衡略有不同 和绩效。有关详细信息,请参阅:
T 摘要
Redis t-digest 结构从数据流中估计百分位数。了解更多 信息,请参阅:
Top-K
Redis Top-K 结构估计数据点在值流中的排名。 有关详细信息,请参阅:
最小计数草图
Redis Count-min 草图估计值流中数据点的频率。 有关详细信息,请参阅:
时间序列
Redis 时间序列结构允许您存储和查询带时间戳的数据点。 有关详细信息,请参阅:
添加扩展
要扩展包含的数据类型提供的功能,请使用以下选项之一:
- 在 Lua 中编写您自己的自定义服务器端函数。
- 使用 modules API 编写您自己的 Redis 模块,或查看社区支持的模块。
- 使用 Redis Stack 提供的 JSON、搜索、时间序列和其他功能。