查询数据
了解如何在 Redis 中查询、搜索和聚合数据
Redis Stack 区分了 FT.SEARCH 和 FT.AGGREGATE 查询命令。如果你只想进行筛选和字段映射操作,就使用 [FT.SEARCH]。如果你还需要应用映射函数、分组或聚合数据,则使用 [FT.AGGREGATE]。
- Selection(筛选):筛选用于返回符合特定条件的所有文档。
- Projection(映射):映射用于返回结果集中的指定字段。你还可以将字段映射为计算值。
- Aggregation(聚合):聚合是在多个字段上汇总和统计数据。
下面是使用 自行车数据集 进行的 SQL 与 Redis Stack 对比示例:
类型 | SQL | Redis Stack |
---|---|---|
筛选 | SELECT * FROM bicycles WHERE price >= 1000 |
FT.SEARCH idx:bicycle "@price:[1000 +inf]" |
简单映射 | SELECT id, price FROM bicycles |
FT.SEARCH idx:bicycle "*" RETURN 2 __key, price |
计算映射 | SELECT id, price-price*0.1 AS discounted FROM bicycles |
FT.AGGREGATE idx:bicycle "*" LOAD 2 __key price APPLY "@price-@price*0.1" AS discounted |
聚合 | SELECT condition, AVG(price) AS avg_price FROM bicycles GROUP BY condition |
FT.AGGREGATE idx:bicycle "*" GROUPBY 1 @condition REDUCE AVG 1 @price AS avg_price |
以下文章提供了使用 FT.SEARCH 命令查询数据的概述:
你可以在以下文章中了解更多关于使用 FT.AGGREGATE 进行聚合查询的细节: