DictureB ist ein entsetzlicher, reaktiver, skalierbarer, hoch verfügbarer und einheitlicher Cache, der für moderne Hardware optimiert ist.
Wir suchen frühe Designpartner. Wenn Sie DictureB bewerten möchten, blockieren Sie unseren Kalender. Immer für einen Chat.
Vorsicht
DictureB ist in der Entwicklung und unterstützt eine Teilmenge von Redis -Befehlen. Verwenden Sie es also bitte nicht in der Produktion. Aber können Sie die offenen Probleme durchlaufen und dazu beitragen, die Entwicklung zu beschleunigen.
Wir haben mehrere Repositorys, in denen Sie einen Beitrag leisten können. Nach Ihrem Interesse können Sie also eine auswählen und ein tieferes Verständnis des Projekts unterwegs aufbauen.
Obwohl Dicedb ein Drop-In-Austausch von Redis ist, was bedeutet, dass fast keine Lernkurve und das Schalten keine Codeänderung erfordert, unterscheidet sich dies immer noch in zwei wichtigen Aspekten und sie sind es
.WATCH
-Befehle wie GET.WATCH
, ZRANGE.WATCH
usw. mit deren Anhören von Datenänderungen und erhalten Sie das Ergebnis in Echtzeit, wenn sich etwas ändert. Die Befehle .WATCH
sind ziemlich praktisch, wenn es darum geht, wirklich Echtzeit-Anwendungen wie Rangliste zu erstellen.
Der einfachste Weg, um mit Dicedb zu beginnen, ist Docker, indem Sie den folgenden Befehl ausführen.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
Der obige Befehl startet den DictureB -Server, der lokal auf dem Port 7379
ausgeführt wird, und Sie können sich mit DictureB CLI und SDKs an ihn verbinden.
Tipp
Da DictureB ein Drop-In-Ersatz für Redis ist, können Sie auch jede Redis-CLI und SDK verwenden, um eine Verbindung zu Dictedb herzustellen.
Um Dicedb für die lokale Entwicklung oder das Laufen aus der Quelle zu betreiben, benötigen Sie
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
Sie können die beiden Flags überspringen, wenn Sie nicht mit Multi-Threading- oder .WATCH
Funktionen arbeiten.
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DictureB bietet eine Hot-Reloading-Entwicklungsumgebung, mit der Sie Ihre Codeänderungen auf einem Live-Server sofort anzeigen können. Diese Funktionalität wird durch Luft unterstützt
So installieren Sie Luft auf Ihrem System, Sie haben die folgenden Optionen.
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
Sobald air
installiert ist, können Sie die Installation mit dem Befehl air -v
überprüfen
Um den Live Dicture Bictb Server für die lokale Entwicklung zu betreiben:
git clone https://github.com/dicedb/dice
cd dice
air
Standardmäßig sucht Dictedb nach der Konfigurationsdatei unter /etc/dice/config.toml
. (Linux, Darwin und 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
Notiz
Wenn Sie Windows verwenden, wird empfohlen, Windows Subsystem für Linux (WSL) oder WSL 2 zu verwenden, um die obigen Befehle in einer Linux-ähnlichen Umgebung nahtlos auszuführen.
Wenn Sie einen anderen Speicherort verwenden möchten, können Sie einen benutzerdefinierten Konfigurationsdateipfad mit dem -c flag
angeben:
go run main.go -c /path/to/config.toml
Wenn Sie die Konfigurationsdatei an einen bestimmten Speicherort ausgeben möchten, können Sie mit dem -o flag
einen benutzerdefinierten Ausgabefad angeben:
go run main.go -o /path/of/output/dir
Der beste Weg zur Verbindung zu Dictic
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
DictureB ist mit Redis -Protokoll vollständig kompatibel, sodass Sie mithilfe eines vorhandenen Redis -Clients oder SDK eine Verbindung herstellen können.
Notiz
Die .WATCH
-Funktion ist nur über die DictureB CLI zugänglich. Wenn Sie an nicht unterstütztem Betriebssystem arbeiten (gemäß dem obigen Skript), können Sie die Installationsanweisungen immer im DictureB/CLI -Repository befolgen.
Unit -Tests und Integrationstests sind für die Gewährleistung der Richtigkeit von wesentlicher Bedeutung und im Fall von DictureB stehen beide Tests zur Verfügung, um seine Funktionalität zu validieren.
Für Unit-Tests können Sie einzelne Unit-Tests durchführen, indem Sie den Namen der Testfunktion anhand der Umgebungsvariablen TEST_FUNC
und ausführen des Befehls make unittest-one
angeben. Alternativ führt das Ausführen von make unittest
alle Unit -Tests durch.
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
Integrationstests dagegen beinhalten das Starten des DictureB -Servers und das Ausführen einer Reihe von Befehlen, um den erwarteten Endzustand und die erwartete Ausgabe zu überprüfen. Um einen einzelnen Integrationstest auszuführen, können Sie die TEST_FUNC
Umgebungsvariable auf den Namen der Testfunktion und den Ausführen make test-one
festlegen. Durch das Ausführen von make test
werden alle Integrationstests ausgeführt.
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
Die Arbeit zum Hinzufügen von weiteren Tests in Dictedb ist im Gange, und wir werden die Test -Redis -Suite bald in diese Codebasis portieren, um die vollständige Kompatibilität zu gewährleisten.
make run_benchmark
Um mit dem Aufbau und dem Beitrag zu DictedB zu beginnen, lesen Sie bitte die in diesem Repository erstellten Probleme.
Wir verwenden Astro Framework, um die DictureB.io -Website zu versorgen und die Dokumente zu versorgen. Sobald Sie NodeJs installiert haben, feuern Sie die folgenden Befehle aus, um Ihre lokale Version von dictyb.io zum Laufen zu bringen.
cd docs
npm install
npm run dev
Sobald der Server beginnt, besuchen Sie http: // localhost: 4321/in Ihrem Lieblingsbrowser. Dies wird mit einem heißen Reload ausgeführt, was bedeutet, dass Änderungen, die Sie auf der Website vornehmen, und die Dokumentation sofort im Browser angezeigt werden kann.
docs/src/content/docs/commands
sind dort, wo alle Befehle dokumentiert sinddocs/src/content/docs/tutorials
sind dort, wo alle Tutorials dokumentiert sind Dicedb begann als Neuauflagen von Redis in Golang mit der Idee, einen DB von Grund auf neu zu bauen, um die mit der Umsetzung verbundenen Mikroverbindungen zu verstehen. Dicedb ist nicht nur eine weitere Datenbank. Es ist eine Plattform, die für die Echtzeit-Ära spezialisiert ist. Da Echtzeitsysteme in modernen Anwendungen zunehmend verbreitet sind, wird die hyperoptimierte Architektur von Dictedb so positioniert, dass die nächste Generation von Benutzererfahrungen mit Strom versorgt wird.
Die Richtlinien für die Codebeiträge werden in beitragen/readme.md veröffentlicht. Bitte lesen Sie sie vor, bevor Sie Änderungen vornehmen. Dies würde es uns ermöglichen, einen konsistenten Standard für Codierungspraktiken und Entwicklererfahrungen zu haben.
Mitwirkenden können sich dem Discord -Server für eine schnelle Zusammenarbeit anschließen.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>