Optimiser l'utilisation de Redis comme solution backend pour les applications Go (2023)

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).

Top Articles
Latest Posts
Article information

Author: Edwin Metz

Last Updated: 26/08/2023

Views: 5995

Rating: 4.8 / 5 (58 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Edwin Metz

Birthday: 1997-04-16

Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

Phone: +639107620957

Job: Corporate Banking Technician

Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.