Dans ce tutoriel, nous explorerons de manière approfondie comment utiliser efficacement Redis comme solution backend pour vos applications Go. Nous aborderons les prérequis, l'installation locale de Redis avec Docker, la connexion à notre instance Redis, et enfin, nous verrons comment stocker et récupérer des valeurs, y compris des structures de données complexes.
Prérequis
Avant de commencer, assurez-vous d'avoir les éléments suivants installés sur votre machine locale :
- Docker : nécessaire pour exécuter une instance locale de Redis.
- Go version 1.12+ : nous utiliserons les modules Go pour gérer les dépendances du projet.
- Un éditeur de texte tel que Visual Studio Code.
Pourquoi Redis ?
Redis est une excellente solution open-source de stockage de données en mémoire, pouvant servir de base de données pour votre application, de service de mise en cache, voire même de courtier de messages. Sa polyvalence et sa rapidité en font un choix idéal. Il prend en charge une variété de structures de données et offre une réplication intégrée, permettant de le configurer en cluster pour garantir la résilience.
Exécution de Redis avec Docker Localement
Commençons par télécharger l'image Docker Redis et l'exécuter localement avec les commandes suivantes :
$ docker pull redis
$ docker run --name redis-test-instance -p 6379:6379 -d redis
La première commande récupère l'image Redis depuis DockerHub, tandis que la seconde commande lance une instance locale avec Docker.
Connexion à notre instance Redis
Maintenant que Redis tourne, créons une application Go simple pour se connecter. Créez un nouveau fichier main.go
dans un nouveau répertoire et ajoutez le code suivant :
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
fmt.Println("Go Redis Tutorial")
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
DB: 0,
})
pong, err := client.Ping().Result()
fmt.Println(pong, err)
}
Exécutez cette application avec la commande go run main.go
pour vérifier la connexion réussie à l'instance Redis.
Ajout de valeurs à Redis
Maintenant que la connexion est établie, explorons comment ajouter et récupérer des valeurs.
Ajout de valeurs
Utilisons la méthode Set
pour définir une valeur avec une clé, une valeur et une expiration. Une expiration de 0 signifie aucune expiration.
// Définir une valeur
err = client.Set("name", "Elliot", 0).Err()
// Gérer les erreurs
if err != nil {
fmt.Println(err)
}
Récupération de valeurs
Utilisons la méthode Get
pour récupérer la valeur associée à une clé.
// Récupérer une valeur
val, err := client.Get("name").Result()
// Gérer les erreurs
if err != nil {
fmt.Println(err)
}
fmt.Println(val)
En exécutant l'application, vous devriez voir le succès de l'ajout et de la récupération de la valeur.
Stockage de valeurs complexes
Bien que le stockage de paires clé/valeur soit puissant, parfois, nous devons stocker des structures de données complexes. Marshalisons ces structures en JSON et stockons-les dans Redis. Définissons une structure d'auteur et stockons-la avec Redis.
type Author struct {
Name string `json:"name"`
Age int `json:"age"`
}
// Marshaliser l'auteur en JSON
json, err := json.Marshal(Author{Name: "Elliot", Age: 25})
// Stocker la structure dans Redis
err = client.Set("id1234", json, 0).Err()
// Gérer les erreurs
if err != nil {
fmt.Println(err)
}
En exécutant l'application, vous devriez voir que la structure d'auteur a été stockée avec succès dans Redis.
Conclusion
Ce tutoriel approfondi a exploré les bases de l'utilisation de Redis avec Go. Nous avons couvert la connexion à Redis avec le package github.com/go-redis/redis
et détaillé l'interaction avec la base de données à l'aide de méthodes fournies par le package. Pour des informations supplémentaires, consultez nos autres articles sur la création d'une API RESTful avec Go et le tutoriel JSON en Go.
Pour plus d'informations, consultez notre article complet sur l'utilisation de Redis comme solution backend pour les applications Go : [lien vers votre article](lien vers votre article).