DicedB est un cache unifié conforme, réactif, évolutif, hautement disponible et unifié optimisé pour le matériel moderne.
Nous recherchons des premiers partenaires de conception, donc, si vous souhaitez évaluer DiCedB, bloquez notre calendrier. toujours pour discuter.
Prudence
DiCedB est en cours de développement et il prend en charge un sous-ensemble de commandes Redis. Donc, veuillez ne pas l'utiliser en production. Mais n'hésitez pas à passer par les problèmes ouverts et à contribuer à nous aider à accélérer le développement.
Nous avons plusieurs référentiels où vous pouvez contribuer. Ainsi, selon votre intérêt, vous pouvez en choisir un et construire une compréhension plus profonde du projet en déplacement.
Bien que DiCedB soit un remplacement de redis, ce qui signifie presque aucune courbe d'apprentissage et la commutation ne nécessite aucun changement de code, il diffère toujours en deux aspects clés et ils sont
ZRANGE.WATCH
charge GET.WATCH
commandes .WATCH
Les commandes .WATCH
sont assez utiles lorsqu'il s'agit de créer des applications en temps réel comme Leadboard.
Le moyen le plus simple de commencer avec DiCedB est d'utiliser Docker en exécutant la commande suivante.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
La commande ci-dessus démarrera le serveur DiCedB en cours d'exécution localement sur le port 7379
et vous pouvez vous y connecter à l'aide de DiCedB CLI et SDKS.
Conseil
Étant donné que DicedB remplace Redis, vous pouvez également utiliser n'importe quel CLI et SDK Redis pour vous connecter à DiCedB.
Pour exécuter DiCedB pour le développement local ou courir à partir de Source, vous aurez besoin
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
Vous pouvez ignorer le passage des deux drapeaux si vous ne travaillez pas avec des fonctionnalités multi-threading ou .WATCH
.
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DiCedB fournit un environnement de développement à hot-rechargement, qui vous permet de visualiser instantanément vos modifications de code dans un serveur en direct. Cette fonctionnalité est soutenue par l'air
Pour installer de l'air sur votre système, vous avez les options suivantes.
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
Une fois que air
est installé, vous pouvez vérifier l'installation à l'aide de la commande air -v
Pour exécuter le serveur DiredB en direct pour le développement local:
git clone https://github.com/dicedb/dice
cd dice
air
Par défaut, DiCedB recherchera le fichier de configuration sur /etc/dice/config.toml
. (Linux, Darwin et 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
Note
Si vous utilisez Windows, il est recommandé d'utiliser le sous-système Windows pour Linux (WSL) ou WSL 2 pour exécuter les commandes ci-dessus de manière transparente dans un environnement de type Linux.
Si vous souhaitez utiliser un emplacement différent, vous pouvez spécifier un chemin de fichier de configuration personnalisé avec l' -c flag
:
go run main.go -c /path/to/config.toml
Si vous souhaitez sortir le fichier de configuration à un emplacement spécifique, vous pouvez spécifier un chemin de sortie personnalisé avec l' -o flag
:
go run main.go -o /path/of/output/dir
La meilleure façon de se connecter à DiCedB est d'utiliser DicedB CLI et vous pouvez l'installer en exécutant la commande suivante
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
DiCedB est entièrement compatible avec le protocole Redis, vous permettant de vous connecter à l'aide de tout client ou SDK Redis existant.
Note
La fonction .WATCH
n'est accessible que via la CLI DicedB. Si vous travaillez sur un système d'exploitation non pris en charge (selon le script ci-dessus), vous pouvez toujours suivre les instructions d'installation mentionnées dans le référentiel DiCedB / CLI.
Les tests unitaires et les tests d'intégration sont essentiels pour garantir l'exactitude et dans le cas de DiCedB, les deux types de tests sont disponibles pour valider sa fonctionnalité.
Pour les tests unitaires, vous pouvez exécuter des tests unitaires individuels en spécifiant le nom de la fonction de test à l'aide de la variable d'environnement TEST_FUNC
et en exécutant la commande make unittest-one
. Alternativement, le fonctionnement make unittest
exécutera tous les tests unitaires.
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
Les tests d'intégration, en revanche, impliquent de démarrer le serveur DiCedB et d'exécuter une série de commandes pour vérifier l'état final attendu et la sortie. Pour exécuter un seul test d'intégration, vous pouvez définir la variable d'environnement TEST_FUNC
sur le nom de la fonction de test et exécuter make test-one
. Running make test
exécutera tous les tests d'intégration.
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
Les travaux pour ajouter plus de tests dans DiCedB sont en cours, et nous allons bientôt porter la suite Test Redis dans cette base de code pour assurer une compatibilité complète.
make run_benchmark
Pour commencer avec la construction et la contribution à DicedB, veuillez vous référer aux problèmes créés dans ce référentiel.
Nous utilisons Astro Framework pour alimenter le site Web DicedB.io et Starlight pour alimenter les documents. Une fois que NodeJS est installé, licenciez les commandes suivantes pour faire fonctionner votre version locale de DiCedB.io.
cd docs
npm install
npm run dev
Une fois le serveur démontr, visitez http: // localhost: 4321 / dans votre navigateur préféré. Cela fonctionne avec un rechargement chaud, ce qui signifie toutes les modifications que vous apportez sur le site Web et la documentation peut être vue instantanément sur le navigateur.
docs/src/content/docs/commands
est l'endroit où toutes les commandes sont documentéesdocs/src/content/docs/tutorials
est l'endroit où tous les tutoriels sont documentés DicedB a commencé comme une réimplémentation de Redis à Golang avec l'idée de construire une base de données à partir de zéro pour comprendre les micro-nuances qui viennent avec sa mise en œuvre. DicedB n'est pas seulement une autre base de données; C'est une plate-forme spécialement conçue pour l'ère en temps réel. Alors que les systèmes en temps réel deviennent de plus en plus répandus dans les applications modernes, l'architecture hyper-optimisée de DiceBB est positionnée pour alimenter la prochaine génération d'expériences utilisateur.
Les directives de contribution du code sont publiées sur contribution / readme.md; Veuillez les lire avant de commencer à apporter des modifications. Cela nous permettrait d'avoir une norme cohérente de pratiques de codage et d'expérience des développeurs.
Les contributeurs peuvent rejoindre le serveur Discord pour une collaboration rapide.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>