跳到内容

开发Redisearch.

开发RediSearch涉及建立开发环境(可以是基于Linux或基于MacOS的),构建ReDisearch,运行测试和基准测试,以及调试重新搜索模块及其测试。

克隆Git存储库

通过调用以下命令,克隆了Redisearch模块及其子模块:

git clone  -  rocursive https://github.com/redisearch/redisearch.git

在孤立的环境中工作

在孤立的环境中开发有几个原因,如保持工作站清洁,并为不同的Linux发行版开发。孤立环境最通用的选择是虚拟机(非常容易使用使用流浪汉)。Docker甚至是一个更敏捷的,因为它提供了一个差不置的解决方案:

搜索=$Docker.-D.--V.$PWD/建造debian.靶心抨击的)Docker.exc.-$搜索抨击

然后,从容器内,CD / BUILD.并像往常一样继续。

在此模式下,所有安装都保留在Docker容器的范围内。退出容器后,您可以使用上面重新调用它Docker Exec.或将容器的状态提交到图像并在稍后阶段重新调用它:

Docker.犯罪$搜索redisearch1.Docker.停止$搜索搜索=$Docker.-D.--V.$PWD/建造RediSeatch1抨击的)Docker.exc.-$搜索抨击

你可以替换Debian:Bullseye.使用您的操作系统选择,主机操作系统是最佳选择(因此您可以在主机上运行重新搜索二进制文件一旦构建)。

安装先决条件

要构建和测试重新搜索,需要安装多个包,具体取决于底层操作系统。目前,我们支持Ubuntu / Debian,CentOS,Fedora和MacOS。

首先,输入重新设计目录。

如果你有GNU制作安装了,您可以执行,

在Linux上:

sudo做设置

在麦斯科斯:

制定

或者,调用以下内容(有苏托对于Linux):

./deps/readies/bin/getpy2./system-setup.py./ystem-setup.py.

注意system-setup.py.将在系统上安装各种软件包使用本机包管理器和PIP。

如果您愿意避免这种情况,您可以:

  • 审查system-setup.py.手动安装包,
  • 使用上面解释的孤立环境,
  • 使用Python虚拟环境,因为已知在不用于隔离时敏感的Python安装:Python2 -M VirtualEnv Venv;。./venv/bin/activate.

安装redis.

作为一项经验法则,您将更好地运行最新的Redis版本。

如果您的操作系统有RediS 6.x包,则可以使用OS包管理器安装它。

否则,您可以调用sudo ./deps/readies/bin/getredis.。跳过苏托在麦克斯。

获得帮助

求助提供了快速摘要的开发功能。

从来源建造

制造将建立重新搜索。要启用单元测试,请添加测试= 1。请注意,Redisearch使用CMake.作为其构建系统。制造将调用两个CMake和完成构建所需的Make命令。用做清洁删除构建的伪影。使清洁全部= 1将删除整个重新设计/建造目录。

诊断cmake.

瞥见CMake Decesion过程,添加为什么= 1到构建命令。CMake存储其中间文件重新设计/建造。之后,人们可以使用:

CD构建make-n

或者:

CD Build make v = 1

进一步诊断构建过程。

用重新搜索运行redis

以下将运行redis.并加载Redisearch模块。

跑步

你可以打开redis-cli.在另一个终端与它互动。

运行测试

有几套单元测试:* C测试,位于测试/ ctests., 由......运营制作c_tests.。* C ++测试(由GTEST启用),位于测试/ cpptests., 由......运营制作cpp_tests.。* Python测试(由Rltest启用),位于测试/ pytests., 由......运营制作pytest.

可以通过调用来运行所有测试制作测试。可以使用单个测试使用测试参数,例如制作测试测试=正则表达式

调试

为调试(启用符号信息和禁用优化),运行make debug = 1。可以使用make运行debug = 1举报.GDB.。除了设置断点的平常方法GDB.,可以使用BB.宏设置重新搜索代码中的断点。在运行时只会产生效果GDB.

类似地,Python在单个测试模式下测试,可以通过使用来设置断点BB()在测试内的功能。

Baidu