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.
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.
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
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) }
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)
输出:key value
在此示例中,我们使用 SET
命令设置 Redis 中的键值对,然后使用 GET
命令检索该键值对。
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) }
输出: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) } }
输出:key1 hello
key2 world
在此示例中,我们使用 WATCH
命令创建一个事务,并将两个 SET
Dans cet exemple, nous avons établi une connexion Redis et lui avons envoyé une requête ping pour vérifier si la connexion est normale.
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.
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!