LedisDB : Guide pratique des cinq structures de données fondamentales

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_liste ou RPOP 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

Étiquettes: LedisDB Go NoSQL Key-Value List

Publié le 21 juin à 21h55