理解 Redis 数据类型
Redis 支持的数据类型概述
Redis 是一个数据结构服务器。其核心是提供一组原生数据类型,帮助您解决各种问题,从缓存到队列再到事件处理。以下是对每种数据类型的简要描述,并附有更广泛的概述和命令参考链接。每篇概述都包含带有代码示例的详细教程。
数据类型
Redis 开源版实现了以下数据类型
字符串
Redis 字符串是最基本的 Redis 数据类型,表示字节序列。更多信息请参阅:
列表
Redis 列表是按插入顺序排序的字符串列表。更多信息请参阅:
集合
Redis 集合是唯一的、无序的字符串集合,类似于您喜欢的编程语言中的集合(例如 Java HashSets、Python sets 等)。使用 Redis 集合,您可以在 O(1) 时间内添加、删除和测试元素是否存在(换句话说,与集合元素的数量无关)。更多信息请参阅:
散列
Redis 散列是记录类型,建模为字段-值对的集合。因此,Redis 散列类似于 Python 字典、Java HashMaps 和 Ruby 散列。更多信息请参阅:
有序集合
Redis 有序集合是唯一的字符串集合,通过每个字符串关联的分数来维护顺序。更多信息请参阅:
矢量集合
Redis 矢量集合是一种专门的数据类型,用于管理高维矢量数据,可在 Redis 中实现快速高效的矢量相似性搜索。矢量集合针对涉及机器学习、推荐系统和语义搜索的用例进行了优化,在这些用例中,每个矢量代表多维空间中的一个数据点。矢量集合支持 HNSW(分层可导航小世界)算法,允许您根据余弦相似度指标存储、索引和查询矢量。通过矢量集合,Redis 提供对混合搜索的原生支持,将矢量相似性与结构化过滤器结合起来。更多信息请参阅:
流
Redis 流是一种数据结构,其行为类似于仅附加日志。流有助于按事件发生的顺序记录事件,然后将它们联合起来进行处理。更多信息请参阅:
地理空间索引
Redis 地理空间索引对于在给定地理半径或边界框内查找位置很有用。更多信息请参阅:
位图
Redis 位图允许您对字符串执行位操作。更多信息请参阅:
位域
Redis 位域有效地在字符串值中编码多个计数器。位域提供原子性的 get、set 和 increment 操作,并支持不同的溢出策略。更多信息请参阅:
- Redis 位域概述
- 的
BITFIELD
命令。
JSON
Redis JSON 提供结构化的分层数组和键值对象,与流行的 JSON 文本文件格式相匹配。您可以将 JSON 文本导入 Redis 对象中,并访问、修改和查询单个数据元素。更多信息请参阅:
概率型数据类型
这些数据类型允许您以一种近似但高效的方式收集和计算统计数据。以下类型可用:
HyperLogLog
Redis HyperLogLog 数据结构提供了对大型集合基数(即元素数量)的概率估计。更多信息请参阅:
布隆过滤器
Redis 布隆过滤器允许您检查元素是否存在于集合中。更多信息请参阅:
布谷鸟过滤器
Redis 布谷鸟过滤器允许您检查元素是否存在于集合中。它们类似于布隆过滤器,但在功能和性能之间存在细微的权衡。更多信息请参阅:
t-digest
Redis t-digest 结构估计数据值流中的百分位数。更多信息请参阅:
Top-K
Redis Top-K 结构估计值流中数据点的排名。更多信息请参阅:
Count-min sketch
Redis Count-min sketch 估计值流中数据点的频率。更多信息请参阅:
时间序列
Redis 时间序列结构允许您存储和查询带时间戳的数据点。更多信息请参阅:
添加扩展
要扩展包含的数据类型提供的功能,请使用以下任一选项:
- 使用 Lua 编写您自己的自定义服务器端函数。
- 使用 modules API 编写您自己的 Redis 模块或查看社区支持的模块。