开发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()
在测试内的功能。