ERR redis resource_error ai_generated partial

FT.CREATE 失败:为索引 'myidx' 分配内存时内存不足

ERR FT.CREATE failed: Out of memory allocating index 'myidx'

ID: redis/redisearch-index-out-of-memory

其他格式: JSON · Markdown 中文 · English
78%修复率
82%置信度
1证据数
2024-05-20首次发现

版本兼容性

版本状态引入弃用备注
7.2.0 active — — —
7.4.0 active — — —
8.0.0 active — — —

根因分析

Redis Search 模块因 maxmemory 限制或系统内存不足,无法为新索引分配内存。

English

Redis Search module failed to allocate memory for new index due to maxmemory limit or system OOM.

generic

官方文档

https://redis.io/docs/stack/search/

解决方案

  1. 增加 maxmemory:CONFIG SET maxmemory 2gb。然后重试 FT.CREATE。使用 INFO memory 监控。
  2. 删除未使用的索引以释放内存:FT.DROPINDEX oldidx DD(DD 删除文档)。然后重试。
  3. 通过在 FT.CREATE 中使用更少的字段或更小的文本字段来减少索引内存开销(例如,关闭 WITHSUFFIXTRIE)。

无效尝试

常见但无效的做法:

  1. 70% 失败

    Setting maxmemory-policy to noeviction prevents eviction but also blocks new writes including index creation; it doesn't free memory.

  2. 60% 失败

    Deleting the index key with DEL may not free memory immediately if the index is still referenced by internal structures; use FT.DROPINDEX instead.