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>