Redis 扩展模块 -- RediSearch 的安装方法
摘要
- 本文介绍 Redis 扩展模块 – RediSearch 的安装方法
- 本文基于
redis-7.4.7,springboot-3.5.8 - 操作系统:
Amazon Linux 2023(内核 6.1) - Redis官网:https://redis.io/
- Redis 命令文档:https://redis.io/docs/latest/commands/
RediSearch 简介
-
RediSearch 是 Redis 官方推出的
全文搜索与二级索引模块,用于在 Redis 之上提供类似搜索引擎的能力,解决“只能按 key 查、无法高效按字段查询”的问题。它是 Redis Stack 的核心组件之一,常用于搜索、过滤、排序和聚合场景。仅支持对 Hash 和 RedisJSON 类型进行索引。 -
该模块以
Redis Module方式加载,可无缝集成到现有 Redis 实例中。 -
Redis8+,RediSearch 已经内置在 Redis 中,可以在安装redis同时安装全部 Stack 模块。
-
RediSearch 通过
索引结构+查询语言,提供:- 全文搜索(Text Search)
- 二级索引(按字段查询)
- 多条件过滤 / 排序
- 聚合分析(GROUP BY、COUNT、SUM 等)
-
性能与设计特点
- 索引在内存中,查询延迟低(毫秒级)
- 写入时同步更新索引(写入成本略高)
- 适合 读多写少 / 查询复杂 的业务
- 非事务型搜索引擎(不替代 ES,而是互补)
-
与原生 Redis 的对比
| 维度 | Redis 原生 | RediSearch |
|---|---|---|
| 查询方式 | key 精确 | 多字段查询 |
| 全文搜索 | 不支持 | 支持 |
| 范围查询 | 有限 | 强 |
| 聚合统计 | 基本没有 | 类 SQL |
| 性能 | 极快 | 近实时,内存换性能 |
RediSearch vs Elasticsearch
| 对比点 | RediSearch | Elasticsearch |
|---|---|---|
| 部署复杂度 | 低 | 高 |
| 延迟 | 极低 | 较高 |
| 数据规模 | 中小规模 | 超大规模 |
| 实时性 | 强 | 近实时 |
| 场景 | 业务内搜索 | 搜索平台 |
安装 RediSearch
-
最简单的方式就是从Redis Cloud的
Download Center中进行下载,其提供了所有Redis模块编译后的.so文件,可以优先进行尝试,但是并不保证一定兼容,所以最稳妥的方式是通过源码自己编译。

-
源码编译
安装时需要科学上网,主要是安装依赖时需要从海外网下载,如果要部署在国内服务器,可能会连接失败。
可以在海外的相同配置的服务器上进行编译,之后将编译好的redisearch.so上传到国内服务器即可。
-
安装依赖
1 | sudo dnf install -y \ |
-
RediSearch 最新版本 依赖 CMake 3.25+,dnf源中的版本较低,所以这里需要手动安装
1 | CMAKE_VERSION=3.25.1 |
-
编译RediSearch
1 | mkdir -p /usr/local/soft/modules/ |
-
编译错误原因分析
1 | RediSearch 2.10.x 在链接 redisearch.so 时 强制 使用 -static-libstdc++,而 libstdc++.a 静态文件不存在,导致编译失败 |
-
解决方法是安装静态库
1 | sudo dnf install -y libstdc++-static |
-
安装后重新编译RediSearch
1 | cd /usr/local/soft/modules |
Redis 启用模块
-
将生成的
redisearch.so拷贝到 redis 的 modules 目录下(非必须),目录不存在则创建
1 | # 注意 .so 文件需要包含可执行权限 |
-
本文采用
loadmodule加载模块
1 | # 将 redisearch.so 添加到 redis.conf 中,需要重启 redis |
Rocky9 编译安装 RediSearch
系统版本:
Rocky Linux release 9.4 (Blue Onyx)
-
安装依赖
1 | sudo dnf install -y \ |
-
启用 CRB
在 Rocky Linux 9 中,
libstdc++-static不在默认仓库里,它位于 CRB(CodeReady Builder)仓库,默认是 关闭的,所以我们需要先启用它
1 | # 如果你系统里没有 config-manager,需要先先装 |
-
安装静态库,解决
/usr/bin/ld: cannot find -lstdc++: No such file or directory的问题
1 | sudo dnf install -y libstdc++-static |
-
编译RediSearch
1 | mkdir -p /usr/local/soft/modules/ |