核心功能
Redis 在查询引擎(RediSearch)中以 VECTOR 字段提供向量检索,结合 FLAT 精确与 HNSW 近似索引,可在既有的内存数据结构上直接做近邻搜索,适合缓存与检索一体化场景。
功能亮点
双索引
FLAT 做精确逐条比对,HNSW 建图换取低延迟检索
度量灵活
距离度量支持余弦、L2 与内积,并可配置向量维度与类型
两种查询
KNN 取 top_k 近邻,VECTOR_RANGE 按半径返回
就地检索
在既有哈希/JSON 数据存储上建索引,无需迁移系统
适用场景
• 在缓存层直接做语义检索,避免额外引入向量库。
• 用向量检索实现以图搜图或相似商品推荐。
• 会话与特征向量共存,低延迟近邻匹配。
安装配置
bash
Docker 运行(含 Redis Query Engine / RediSearch,支持向量检索): docker run -d --name redis -p 6379:6379 redis/redis-stack-server:latest 连接(在容器内执行): docker exec -it redis redis-cli
使用方法
javascript
建 FLAT 向量索引(哈希): FT.CREATE documents ON HASH PREFIX 1 docs: SCHEMA doc_embedding VECTOR FLAT 6 TYPE FLOAT32 DIM 1536 DISTANCE_METRIC COSINE 建 HNSW 向量索引(可调图质量): FT.CREATE documents ON HASH PREFIX 1 docs: SCHEMA doc_embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 1536 DISTANCE_METRIC COSINE M 40 EF_CONSTRUCTION 250 建 FLAT 向量索引(JSON): FT.CREATE idx:bikes_vss ON JSON PREFIX 1 bikes: SCHEMA $.vector VECTOR FLAT 6 TYPE FLOAT32 DIM 768 DISTANCE_METRIC COSINE 写入与 KNN 查询(DIALECT 2 必填): FT.SEARCH documents "*=>[KNN 10 @doc_embedding $BLOB]" PARAMS 2 BLOB "\x12\xa9\xf5\x6c" DIALECT 2
关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标Redis
价格免费增值
开源是
上手难度进阶
相关工具
优点
- 在既有 Redis 内存数据上建向量索引,无需新组件。
- FLAT 与 HNSW 兼顾精确性与查询延迟。
- 支持 COSINE/L2/IP 与哈希、JSON 多种数据结构。
- 开源免费(RSALv2/SSPLv1/AGPLv3),Cloud 托管可选。
缺点
- KNN 查询默认 LIMIT 为 10,需显式指定返回数量。
- 向量查询必须带 DIALECT 2,否则语法不被支持。
- 向量 BLOB 字节长度必须与 schema 声明的 DIM 一致。
- 集群模式下向量索引分片可能不均衡,影响查询。