LedisDB, un serveur de base de données NoSQL performant écrit en Go, propose cinq structures de données essentielles : Clé-Valeur, Liste, Hash, Ensemble et Ensemble Ordonné. Ce guide illustre leur utilisation à travers des exemples concrets.
Configuration initiale de LedisDB
Pour démarrer le serveur, clonez le dépôt et compilez-le :
git clone https://gitcode.com/gh_mirrors/le/ledisdb
cd ledisdb
make
./bin/ledis-server -c etc/ledis.conf
Connetcez-vous ensuite via l'interface en ligne de commande sur le port par défaut :
./bin/ledis-cli -p 6380
Structure Clé-Valeur (KV)
Cette structure stocke des données sous forme de paires clé-valeur, idéale pour des informations simples.
Commandes de base :
- Stocker :
SET cle valeur - Lire :
GET cle - Supprimer :
DEL cle
Exemple d'utilisation pour stocker une date de connexion :
SET utilisateur:2050:derniere_connexion "2024-03-15 14:20:00"
GET utilisateur:2050:derniere_connexion
Structure Liste
Une liste ordonnée d'éléments permettant des insertions/suppressions efficaces en tête ou en queue.
Opérations typiques :
- Ajouter à gauche :
LPUSH ma_liste element - Ajouter à droite :
RPUSH ma_liste element - Extraire un segment :
LRANGE ma_liste debut fin - Retirer un élément :
LPOP ma_listeouRPOP ma_liste
Implémentation d'une file de messages :
LPUSH file_attente "requete:A102"
LPUSH file_attente "traitement:B305"
LRANGE file_attente 0 -1
RPOP file_attente
Structure Hash
Collection de champs-valeurs associés à une même clé, parfaite pour modéliser des objets.
Fonctions principales :
- Définir un champ :
HSET cle_hash champ valeur - Lire un champ :
HGET cle_hash champ - Lire tous les champs :
HGETALL cle_hash - Effacer un champ :
HDEL cle_hash champ
Stockage d'un profil utilisateur :
HSET profil:2050 nom "Alice Martin"
HSET profil:2050 age "28"
HSET profil:2050 service "Développement"
HGETALL profil:2050
Structure Ensemble (Set)
Collection non ordonnée d'éléments uniques, utilisée pour garantir l'unicité.
Commandes essentielles :
- Inclure :
SADD ensemble item - Lister :
SMEMBERS ensemble - Vérifier l'existence :
SISMEMBER ensemble item - Exclure :
SREM ensemble item
Exemple de gestion d'étiquettes :
SADD etiquettes:2050 "golang"
SADD etiquettes:2050 "base_de_donnees"
SADD etiquettes:2050 "devops"
SMEMBERS etiquettes:2050
Structure Ensemble Ordonné (ZSet)
Ensemble dont chaque membre possède un score numérique, permettant des classements.
Commandes clés :
- Ajouter avec score :
ZADD classement score membre - Récupérer par rang :
ZRANGE classement debut fin - Récupérer par score :
ZRANGEBYSCORE classement min max - Consulter un score :
ZSCORE classement membre
Création d'un leaderboard :
ZADD scores:concours 985 "participant_1"
ZADD scores:concours 962 "participant_2"
ZADD scores:concours 978 "participant_3"
ZRANGE scores:concours 0 2 WITHSCORES
Ressources complémentaires
Pour approfondir :
- Référence des commandes :
doc/commands.md - Paramètres de configuration :
etc/ledis.conf - Exemples dans les tests :
ledis/ledis_test.go