3 meilleurs clients Redis pour les développeurs Go

3 meilleurs clients Redis pour les développeurs Go

Redis est un magasin de structure de données en mémoire, largement utilisé pour la mise en cache, l’analyse en temps réel et le courtage de messages. C’est un choix populaire pour les développeurs en raison de sa vitesse ultra-rapide et de son riche ensemble de fonctionnalités.

Redis prend en charge de nombreuses structures de données, notamment les chaînes, les hachages, les listes, les collections et les ensembles triés. Il offre également une prise en charge intégrée de la messagerie de publication/abonnement, une prise en charge des transactions et des scripts Lua.

Il existe plusieurs clients Redis populaires pour les développeurs Go, chacun avec des caractéristiques et des fonctionnalités uniques. Les trois clients Redis suivants sont les plus populaires parmi les développeurs Go.

1. Le forfait go-redis

Présentation du github Go-redis

Le package go-redis est une bibliothèque client Go populaire pour la base de données Redis. Il fournit une API simple et facile à utiliser pour interagir avec Redis, et le package prend en charge toutes les commandes Redis.

Le package go-redis est populaire parmi les développeurs Go en raison de ses performances, de sa fiabilité et de son interface facile à utiliser. Vous trouverez le package utile pour les fonctionnalités allant de la gestion de session à la mise en cache, à la mise en file d’attente des messages, etc.

Exécutez cette commande dans le terminal du répertoire de votre projet pour installer le package go-redis.

go get github.com/go-redis/redis

Voici comment importer le package go-redis dans votre projet.

import (
  "fmt"
  "github.com/go-redis/redis"
)

L’instanciation d’une nouvelle connexion à une base de données Redis avec le package go-redis est simple. Vous utiliserez la méthode NewClient du package redis , qui accepte la structure Options contenant les détails de configuration.

func main() {
  client: = redis.NewClient(&redis.Options{
    Addr: "localhost:6379",
    Password: "", // no password set
  })
}

Dans la fonction principale , la variable client est l’instance de connexion client Redis. Vous pouvez initialiser la structure Options avec les champs Addr et Password qui contiennent respectivement l’adresse et le mot de passe de la base de données.

Lors de la création d’une instance de client Redis, vous pouvez envoyer un ping à la base de données pour vérifier votre connexion avec la méthode Ping . Vous pouvez utiliser la méthode Result sur la méthode Ping, qui renvoie l’état et une erreur.

pong, err: = client.Ping().Result()

if err! = nil {
  fmt.Println(err)
  return
}

fmt.Println(pong, err)

Vous pouvez ajouter une paire clé-valeur à votre base de données avec la méthode Set de votre instance client. L’utilisation de la méthode Err sur une opération renvoie une erreur que vous pouvez gérer.

// Set a key
err = client.Set("key", "value", 0).Err()

if err! = nil {
   fmt.Println(err)
   return
}

Vous pouvez récupérer une valeur de la base de données avec la clé à l’aide de la méthode Get de votre instance client. L’utilisation de la méthode Result sur une opération renvoie le résultat de l’opération et une erreur.

// Get a key
val, err: = client.Get("key").Result()

if err! = nil {
  fmt.Println(err)
  return
}


fmt.Println("key", val)

2. Le paquet Radix

Présentation de Github du package Radixx

Le package Radix est une bibliothèque qui fournit un client pour le magasin de structure de données en mémoire Redis. Le package Radix résume le package Redigo pour fournir une API facile à utiliser pour interagir avec Redis.

Le package Radix prend en charge toutes les commandes Redis, y compris les scripts Lua et Pub/Sub, le regroupement de connexions et les reconnexions automatiques qui permettent des opérations efficaces et résilientes avec Redis, la prise en charge des clusters Redis, y compris le partage et le basculement transparents, et une conception légère et efficace permettant pour une faible latence et un débit élevé.

Vous trouverez le package Radix très utile si vous cherchez à ajouter une prise en charge rapide de Redis à vos projets Go, car le package résume les complexités sous-jacentes du protocole Redis, ce qui facilite la mise en cache, la gestion des sessions et la mise en file d’attente des messages.

Exécutez cette commande pour installer la troisième version du package Radix dans le répertoire de travail de votre projet.

go get github.com/mediocregopher/radix/v3

Voici comment vous pouvez importer le package Radix dans votre programme.

import (
  "fmt"
  "github.com/mediocregopher/radix/v3"
)

Vous pouvez utiliser la méthode Dial du package radix pour vous connecter à un serveur Redis. La méthode Dial accepte le type de connexion et l’adresse du serveur Redis et renvoie une instance de connexion et une erreur.

func main() {
  //connect to redis server
  conn, err: = radix.Dial("tcp", "localhost:6379")

  if err! = nil {
    fmt.Println(err)
    return
  }


  defer conn.Close()
}

Dans la fonction main, vous avez créé une instance de connexion Redis avec la méthode Dial et fermé la connexion avec la méthode Close et une instruction defer .

Vous pouvez exécuter des commandes Redis avec la méthode Cmd du package radix . La méthode Cmd accepte une interface, une commande et les valeurs de la commande.

err = conn.Do(radix.Cmd(nil, "SET", "mykey", "myvalue"))

if err! = nil {
  fmt.Println("Error setting key: ", err)
} else {
  fmt.Println("Key set successfully")
}

La méthode Do englobe l’opération et renvoie une erreur.

De même, vous pouvez récupérer des valeurs de votre base de données avec la méthode FlatCmd . La méthode FlatCmd prend la référence à une variable, la commande et la clé.

var val string
err = conn.Do(radix.FlatCmd(&val, "GET", "mykey"))

if err! = nil {
  fmt.Println("Error getting key: ", err)
} else {
  fmt.Println("Value of mykey is", val)
}


Lorsque vous exécutez ce code, vous devriez voir une sortie semblable à celle-ci :

Résultat de l'opération Redis

3. Le forfait Redigo

Le package Redigo est une autre bibliothèque client Go populaire pour Redis. Contrairement à Radix et Go-redis , le package Redigo est un client léger qui fournit une interface simple et efficace pour interagir avec Redis.

L’un des arguments de vente de Redigo est sa performance, malgré sa légèreté. Redigo fournit une API de type impression avec prise en charge de toutes les commandes Redis, et le package est couramment utilisé pour le pipelining, le pub-sub, le regroupement de connexions et d’autres opérations.

Exécutez cette commande de terminal pour installer le package redigo et commencer.

go get github.com/gomodule/redigo/redis

Voici comment vous pouvez importer le package redigo dans vos fichiers de projet.

import (
  "fmt"
  "github.com/gomodule/redigo/redis"
)

Vous pouvez utiliser la méthode Dial du package Redis pour vous connecter à une instance de base de données Redis. La méthode Dial prend un type de connexion et une adresse et renvoie l’instance de connexion et une erreur.

func main() {
  // Connect to the Redis instance
  conn, err: = redis.Dial("tcp", "localhost:6379")

  if err! = nil {
    fmt.Println(err)
    return
  }


  defer conn.Close()
}

Dans la fonction principale , vous vous êtes connecté à une instance de base de données Redis exécutée sur le port 6379 et avez fermé la connexion avec la méthode Close de l’instance de connexion et une instruction différée .

Vous pouvez exécuter des opérations Redis à l’aide de la méthode Do de votre instance de connexion. La méthode Do renvoie une interface de sortie et une erreur.

// Set the value "hello"to the key "message"
_, err = conn.Do("SET", "message", "hello")

if err! = nil {
  fmt.Println(err)
  return
}

Vous pouvez récupérer une sortie de chaîne d’une opération Redis avec la méthode String du package Redis . La méthode String prend l’instance de l’opération et renvoie la valeur et une erreur.

// Get the value of the key "message"
value, err: = redis.String(conn.Do("GET", "message"))

if err! = nil {
  fmt.Println(err)
  return
}


fmt.Println(value) // Output: "hello"

Vous pouvez utiliser des bases de données SQL avec Go

L’écosystème Go prend en charge les bases de données et les magasins de données populaires. Go fournit le package database/sql dans le cadre de la bibliothèque standard pour travailler avec des bases de données SQL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *