首页
/ RediSearch开发环境搭建与测试指南

RediSearch开发环境搭建与测试指南

2025-07-07 07:57:28作者:滕妙奇

项目概述

RediSearch是Redis的一个高性能全文搜索引擎模块,为Redis提供了强大的索引和查询功能。本文将详细介绍如何搭建RediSearch的开发环境,包括项目克隆、依赖安装、构建过程以及测试方法。

开发环境准备

项目克隆

获取RediSearch源代码需要使用递归克隆方式,以确保所有子模块都能正确获取:

git clone --recursive <项目仓库地址>

开发容器(推荐方式)

RediSearch提供了基于Ubuntu最新版的开发容器,预装了所有必要的依赖项:

  1. Redis服务
  2. 构建系统工具
  3. Rust编译环境
  4. 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

主要依赖项包括:

  1. Rust(最新稳定版)
  2. CMake(≥3.25.1)
  3. Boost库(1.84.0版,可选)
  4. 基础构建工具(build-essential等)
  5. Python3和pip3(用于测试)
  6. 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

特定测试类型

  1. C测试(位于tests/ctests):

    make c-tests
    
  2. C++测试(使用GTest框架):

    make cpp-tests
    
  3. Python行为测试(使用RLTest框架):

    make pytest
    

测试依赖

Python行为测试需要额外依赖,可通过脚本安装:

.install/test_deps/common_installations.sh

该脚本会创建名为venv的Python虚拟环境并安装所需依赖。

RedisJSON测试选项

  1. 跳过RedisJSON测试:

    make pytest REJSON=0
    
  2. 指定RedisJSON模块路径:

    make pytest REJSON_PATH=/path/to/redisjson.so
    
  3. 指定RedisJSON分支:

    make pytest REJSON_BRANCH=branch
    

内存检测工具

支持地址消毒剂(Address Sanitizer):

make build test SAN=address

调试构建

生成带调试符号的版本:

make DEBUG=1

总结

本文详细介绍了RediSearch开发环境的搭建流程和测试方法。使用开发容器可以快速开始开发工作,而手动安装则提供了更多灵活性。测试套件覆盖了从单元测试到行为测试的多个层面,确保代码质量。开发者可以根据实际需求选择适合的构建和测试方式。