You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis FT.SEARCH命令耗时随时间增长问题排查求助

Redis FT.SEARCH性能随时间持续退化问题求助

环境与作业背景

  • Redis存储约120万条JSON文档,分为两个命名空间:com.test.api.redis.model.document.PRedis:*(约70万条)、com.test.api.redis.model.document.SRedis:*(约55万条)
  • 每小时针对每个命名空间执行一次作业,完成三项操作:更新所有JSON键、创建新键、删除未更新的键;两个作业间隔30分钟,单次作业耗时约2分钟

慢查询与性能退化现象

作业中用于定位未更新键的FT.SEARCH命令如下:

FT.SEARCH com.test.api.redis.model.document.PRedisIdx ( -@jobId:[1.731591900002E12 1.731591900002E12]) NOCONTENT LIMIT 0 10000 DIALECT 1 

性能随时间持续退化:

  • Redis启动后首次执行该命令耗时仅30ms
  • 1天后耗时增至1秒,1周后达到10秒左右
  • 重启Redis Docker容器后耗时恢复正常,但后续会再次逐渐变长
  • 该问题在redis/redis-stack-server:7.2.0-v13和7.4.0-v1两个版本镜像中均出现

已尝试的无效优化操作

  • 执行内存清理
  • 主动触发碎片整理
  • 终止闲置客户端
  • 将作业间隔延长至5小时

补充细节

  • 作业执行期间Redis CPU使用率达99%,作业间隙则低于1%
  • jobId为作业执行时的当前毫秒时间,通过Redis OM Spring在实体类中定义:
@Indexed
private Long jobId;

对应索引中的属性配置:

18) 1) "identifier"
    2) "$.jobId"
    3) "attribute"
    4) "jobId"
    5) "type"
    6) "NUMERIC"

问题

该Redis性能持续退化的原因是什么?

内容的提问来源于stack exchange,提问作者xMilos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:36:06