DIDEDB是一种符合重新的,反应性的,可扩展的,高度可用的,统一的高速缓存,可针对现代硬件进行了优化。
我们正在寻找早期的设计合作伙伴,因此,如果您想评估排列,请阻止我们的日历。总是聊天。
警告
迪迪布正在开发中,它支持REDIS命令的一个子集。因此,请不要在生产中使用它。但是,请随时解决空旷的问题,并为帮助我们加快发展的速度做出贡献。
我们有多个存储库,您可以在这里贡献。因此,根据您的兴趣,您可以选择一个,并对该项目进行更深入的了解。
尽管排成丁的B是REDIS的倒数替换,这意味着几乎没有学习曲线和切换不需要任何代码更改,但它在两个关键方面仍然有所不同,它们是
.WATCH
命令,例如GET.WATCH
, ZRANGE.WATCH
等。使客户可以侦听数据更改并在某些东西更改时实时设置结果。当构建诸如排行榜之类的真正实时应用程序时, .WATCH
命令非常方便。
开始列出的最简单方法是通过运行以下命令来使用Docker。
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
上面的命令将启动在端口7379
上本地运行的DIDB服务器,您可以使用排成二的CLI和SDK连接到它。
提示
由于排成的B是REDIS的替换,因此您也可以使用任何Redis CLI和SDK连接到DIEDB。
要运行以本地开发或从源运行运行的diendb,您将需要
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
如果您不使用多线程或.WATCH
功能,则可以跳过两个标志。
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DIDEDB提供了一个热功能的开发环境,该环境使您可以立即查看实时服务器中的代码更改。此功能由空气支持
要在系统上安装空气,您有以下选项。
go install github.com/air-verse/air@latest
# binary will be installed at $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin
安装air
后,您可以使用命令air -v
验证安装
运行用于本地开发的Live DiendB服务器:
git clone https://github.com/dicedb/dice
cd dice
air
默认情况下,DIDEDB将在/etc/dice/config.toml
上查找配置文件。 (Linux,Darwin和WSL)
# set up configuration file # (optional but recommended)
sudo mkdir -p /etc/dice
sudo chown root: $USER /etc/dice
sudo chmod 775 /etc/dice # or 777 if you are the only user
git clone https://github.com/DiceDB/dice.git
cd dice
go run main.go -init-config
笔记
如果您使用的是Windows,建议将Windows子系统用于Linux(WSL)或WSL 2在类似Linux的环境中无缝运行上述命令。
如果您想使用其他位置,则可以使用-c flag
指定自定义配置文件路径:
go run main.go -c /path/to/config.toml
如果您想将配置文件输出到特定位置,则可以使用-o flag
指定自定义输出路径:
go run main.go -o /path/of/output/dir
连接到列的最好方法是使用DIDEDB CLI,您可以通过运行以下命令安装它
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
迪迪布与Redis协议完全兼容,使您可以使用任何现有的Redis客户端或SDK连接。
笔记
.WATCH
功能仅通过排列的CLI才能访问。如果您正在处理不支持的OS(按照上述脚本),则可以始终按照成员/CLI存储库中提到的安装说明进行操作。
单位测试和集成测试对于确保正确性至关重要,对于排列的情况,两种类型的测试都可用于验证其功能。
对于单元测试,您可以使用TEST_FUNC
环境变量指定测试功能的名称并运行make unittest-one
命令来执行单个单元测试。另外,运行make unittest
将执行所有单元测试。
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
另一方面,集成测试涉及启动排列的服务器并运行一系列命令以验证预期的最终状态和输出。要执行单个集成测试,您可以将TEST_FUNC
环境变量设置为测试功能的名称,并运行make test-one
。运行make test
将执行所有集成测试。
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
正在进行中添加分数的更多测试的工作正在进行中,我们很快将把测试redis Suite移植到该代码库中,以确保完全兼容。
make run_benchmark
要开始构建并为排成丁字的贡献,请参考此存储库中创建的问题。
我们使用Astro框架为DIDEDB.IO网站和Starlight为文档提供动力。安装了NodeJS后,请触发以下命令,以使您的本地版本的DIDEDB.IO运行。
cd docs
npm install
npm run dev
服务器启动后,请访问http:// localhost:4321/在您喜欢的浏览器中。这是由热装加载的,这意味着您在网站中进行的任何更改,并且可以在浏览器上立即查看文档。
docs/src/content/docs/commands
是记录所有命令的地方docs/src/content/docs/tutorials
是所有教程记录的地方迪迪布(Dicedb)最初是在Golang中重新实现Redis的重新实施,其想法是从头开始构建DB,以了解其实施所带来的微观努力。排定的不仅仅是另一个数据库;这是实时时代专门构建的平台。随着实时系统在现代应用中变得越来越普遍,迪迪斯布的超优化体系结构将定位为下一代用户体验的动力。
代码贡献指南发表在贡献/readme.md上;在开始进行任何更改之前,请阅读它们。这将使我们拥有一致的编码实践和开发人员经验。
贡献者可以加入Discord服务器进行快速协作。
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>