Maison > développement back-end > Golang > le corps du texte

Utiliser Redis in Go : un guide complet

WBOY
Libérer: 2023-06-17 09:41:21
original
4752 Les gens l'ont consulté

Avec le développement rapide d'Internet et des applications mobiles, le traitement des données est devenu un élément indispensable des applications modernes. La technologie de mise en cache des bases de données devient de plus en plus importante et Redis devient de plus en plus populaire en tant qu'application en mémoire hautes performances. Dans cet article, nous présenterons un tutoriel complet sur l'utilisation de Redis en langage Go.

  1. Preparation

Avant de commencer à utiliser Redis, nous devons installer et démarrer le serveur Redis. Cela se fait en téléchargeant Redis et en exécutant la commande du serveur Redis. Une fois que Redis sera exécuté et que le serveur sera démarré, nous pourrons fonctionner avec Redis.

  1. Utilisation du client Go Redis

Dans le langage Go, il existe de nombreuses bibliothèques client Redis disponibles pour se connecter et communiquer avec le serveur Redis. Ici, nous choisissons l'une des bibliothèques client Go Redis les plus populaires - go-redis.

Téléchargez et installez go-redis :

go get github.com/go-redis/redis
Copier après la connexion
  1. Opération de base

Connectez-vous au serveur Redis : #🎜🎜 #

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

func main() {
    client := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379", // Redis 服务器地址
        Password: "",               // Redis 密码
        DB:       0,                // Redis 数据库
    })

    pong, err := client.Ping().Result()
    fmt.Println(pong, err)
}
Copier après la connexion

Sortie : PONG <nil>

PONG <nil>

在此示例中,我们建立了一个 Redis 连接并对其进行了 ping 操作,检查连接是否正常。

在 Redis 中设置和获取键值对:

err := client.Set("key", "value", 0).Err()
if err != nil {
    panic(err)
}

val, err := client.Get("key").Result()
if err != nil {
    panic(err)
}
fmt.Println("key", val)
Copier après la connexion

输出:key value

在此示例中,我们使用 SET 命令设置 Redis 中的键值对,然后使用 GET 命令检索该键值对。

  1. 高级操作

Redis 中有许多高级命令可用于更复杂的操作。下面我们将介绍一些常用的高级命令。

4.1 发布/订阅

Redis 提供了发布/订阅模式,可以用于将消息发送到多个客户端。在此示例中,我们将创建两个客户端,一个订阅频道 foo,一个发布消息到频道 foo

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

func main() {
    client1 := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "",
        DB:       0,
    })

    client2 := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "",
        DB:       0,
    })

    pubsub := client2.Subscribe("foo")
    _, err := pubsub.Receive()
    if err != nil {
        panic(err)
    }

    err = client1.Publish("foo", "hello world").Err()
    if err != nil {
        panic(err)
    }

    msg, err := pubsub.ReceiveMessage()
    if err != nil {
        panic(err)
    }

    fmt.Println(msg.Channel, msg.Payload)
}
Copier après la connexion

输出:foo hello world

在此示例中,我们使用 PUBLISH 命令发布消息到频道 foo,并使用 SUBSCRIBE 命令订阅该频道以接收消息。当我们发布消息时,我们将在我们的订阅客户端中收到该消息。

4.2 事务

Redis 提供了事务功能,用于处理需要同时执行多个操作的情况。我们可以使用以下命令创建一个事务,并将多个 Redis 命令添加到事务中。

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

func main() {
    client := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "",
        DB:       0,
    })

    err := client.Watch(func(tx *redis.Tx) error {
        _, err := tx.Pipelined(func(pipe redis.Pipeliner) error {
            pipe.Set("key1", "hello")
            pipe.Set("key2", "world")
            return nil
        })
        if err != nil {
            return err
        }

        val1, err := tx.Get("key1").Result()
        if err != nil {
            return err
        }
        fmt.Println("key1", val1)

        val2, err := tx.Get("key2").Result()
        if err != nil {
            return err
        }
        fmt.Println("key2", val2)

        return nil
    }, "key1", "key2")

    if err != nil {
        panic(err)
    }
}
Copier après la connexion

输出:key1 hello key2 world

在此示例中,我们使用 WATCH 命令创建一个事务,并将两个 SETDans cet exemple, nous avons établi une connexion Redis et lui avons envoyé une requête ping pour vérifier si la connexion est normale.

    Définir et obtenir des paires clé-valeur dans Redis :
  1. rrreee
  2. Sortie : valeur clé

Dans cet exemple, nous utilisons la commande SET pour définir la paire clé-valeur dans Redis, puis utilisons la commande GET pour récupérer la paire clé-valeur.

    #🎜🎜#Opérations avancées#🎜🎜##🎜🎜##🎜🎜#Il existe de nombreuses commandes avancées dans Redis pour des opérations plus complexes. Ci-dessous, nous présenterons quelques commandes avancées couramment utilisées. #🎜🎜##🎜🎜#4.1 Publier/Abonnez-vous#🎜🎜##🎜🎜#Redis fournit un mode de publication/abonnement qui peut être utilisé pour envoyer des messages à plusieurs clients. Dans cet exemple, nous allons créer deux clients, un qui s'abonne au canal foo et un qui publie des messages sur le canal foo. #🎜🎜#rrreee#🎜🎜#Sortie : foo hello world#🎜🎜##🎜🎜#Dans cet exemple, nous utilisons la commande PUBLISH pour publier un message sur le canalfoo et utilisez la commande SUBSCRIBE pour vous abonner au canal et recevoir des messages. Lorsque nous publions un message, nous le recevrons dans notre client abonné. #🎜🎜##🎜🎜#4.2 Transactions #🎜🎜##🎜🎜#Redis fournit des fonctions de transaction pour gérer les situations où plusieurs opérations doivent être effectuées simultanément. Nous pouvons utiliser la commande suivante pour créer une transaction et ajouter plusieurs commandes Redis à la transaction. #🎜🎜#rrreee#🎜🎜#Sortie : key1 hello key2 world#🎜🎜##🎜🎜#Dans cet exemple, nous utilisons WATCH The code> crée une transaction et ajoute deux commandes <code>SET à la transaction. Nous essayons ensuite de lire les deux clés pour nous assurer que l’opération SET a réussi. Si l'opération SET échoue, la totalité de la transaction est annulée. #🎜🎜##🎜🎜##🎜🎜#Conclusion#🎜🎜##🎜🎜##🎜🎜#Dans cet article, nous avons présenté comment utiliser la bibliothèque client Redis go-redis dans le langage Go pour se connecter et fonctionner Serveur Redis. Nous avons découvert les opérations de base et avancées de Redis, telles que la définition et l'obtention de paires clé-valeur, le mode publication/abonnement et les transactions. Grâce à ces technologies, nous pouvons facilement créer des applications hautes performances et évolutives. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!