RediSearch开发环境搭建与测试指南
项目概述
RediSearch是Redis的一个高性能全文搜索引擎模块,为Redis提供了强大的索引和查询功能。本文将详细介绍如何搭建RediSearch的开发环境,包括项目克隆、依赖安装、构建过程以及测试方法。
开发环境准备
项目克隆
获取RediSearch源代码需要使用递归克隆方式,以确保所有子模块都能正确获取:
git clone --recursive <项目仓库地址>
开发容器(推荐方式)
RediSearch提供了基于Ubuntu最新版的开发容器,预装了所有必要的依赖项:
- Redis服务
- 构建系统工具
- Rust编译环境
- Python虚拟环境
使用开发容器可以避免手动安装各种依赖的麻烦,特别适合快速开始开发工作。首次使用时,容器会自动下载并安装所有依赖,这可能需要几分钟时间。
手动安装依赖
如果选择不使用开发容器,以下是手动安装依赖的详细说明。
构建依赖
RediSearch支持多种操作系统,包括:
- Ubuntu系列(18.04-24.04)
- Debian系列(11-12)
- Rocky Linux(8-9)
- Amazon Linux(2和2023版)
- Mariner 2.0
- Azure Linux 3
- MacOS
- Alpine Linux 3
主要依赖项包括:
- Rust(最新稳定版)
- CMake(≥3.25.1)
- Boost库(1.84.0版,可选)
- 基础构建工具(build-essential等)
- Python3和pip3(用于测试)
- OpenSSL开发库
各系统特殊要求
- Ubuntu 18.04/20.04:需要安装GCC 10(通过PPA)
- Ubuntu 22.04+:默认GCC版本已满足要求
- Rocky Linux 8/9:需要安装GCC 13工具集
- Amazon Linux 2:需要安装GCC 11
- MacOS:需要通过brew安装clang-18
安装脚本
项目提供了自动化安装脚本,位于.install
目录下:
cd .install
./install_script.sh sudo
注意:在非Docker环境下需要sudo权限。
Redis安装
开发测试需要Redis服务,可以从源代码构建安装。
RedisJSON(测试依赖)
部分行为测试需要RedisJSON模块,测试框架会自动处理其安装。
构建项目
构建RediSearch非常简单:
make build
运行Redis并加载RediSearch模块:
make run
测试指南
运行测试
执行完整测试套件:
make test
特定测试类型
-
C测试(位于tests/ctests):
make c-tests
-
C++测试(使用GTest框架):
make cpp-tests
-
Python行为测试(使用RLTest框架):
make pytest
测试依赖
Python行为测试需要额外依赖,可通过脚本安装:
.install/test_deps/common_installations.sh
该脚本会创建名为venv
的Python虚拟环境并安装所需依赖。
RedisJSON测试选项
-
跳过RedisJSON测试:
make pytest REJSON=0
-
指定RedisJSON模块路径:
make pytest REJSON_PATH=/path/to/redisjson.so
-
指定RedisJSON分支:
make pytest REJSON_BRANCH=branch
内存检测工具
支持地址消毒剂(Address Sanitizer):
make build test SAN=address
调试构建
生成带调试符号的版本:
make DEBUG=1
总结
本文详细介绍了RediSearch开发环境的搭建流程和测试方法。使用开发容器可以快速开始开发工作,而手动安装则提供了更多灵活性。测试套件覆盖了从单元测试到行为测试的多个层面,确保代码质量。开发者可以根据实际需求选择适合的构建和测试方式。