如何通过Redis FT.AGGREGATE聚合JSON数据统计网站总访问量
用Redis FT.AGGREGATE统计网站总访问量
步骤1:创建RedisSearch索引
首先得给存储的JSON数据建索引,让Redis能识别visit_count字段并支持聚合计算:
FT.CREATE page_visits_idx ON JSON SCHEMA $.visit_count AS visit_count NUMERIC
page_visits_idx是自定义的索引名,可按需修改$.visit_count AS visit_count把JSON路径里的visit_count映射为索引字段NUMERIC指定字段为数值类型,确保能执行求和操作
步骤2:执行聚合统计
用FT.AGGREGATE命令直接汇总所有页面的访问次数:
FT.AGGREGATE page_visits_idx "*" GROUPBY 0 SUM @visit_count AS total_visits
"*"表示匹配所有文档,不需要过滤特定页面GROUPBY 0表示不按任何字段分组,直接对全量数据做聚合SUM @visit_count计算所有文档中visit_count的总和AS total_visits给结果字段命名,最终会返回total_visits: 22(对应示例数据的求和结果)
补充:Hash类型数据的适配
如果你的页面访问数据是存在Redis Hash里(而非JSON),创建索引的命令要调整成这样:
FT.CREATE page_visits_idx ON HASH SCHEMA visit_count NUMERIC
聚合命令和之前保持一致即可。
内容的提问来源于stack exchange,提问作者Ankit PrabhatKumar
相关产品推荐
相关产品推荐

