Maison > Article > développement back-end > Développement Golang : utiliser Redis pour implémenter la gestion du cache
Développement Golang : l'utilisation de Redis pour implémenter la gestion du cache nécessite des exemples de code spécifiques
Introduction :
Dans le développement Web moderne, l'utilisation du cache peut considérablement améliorer les performances et l'expérience utilisateur d'un site Web ou d'une application. En tant que base de données en mémoire hautes performances, Redis est largement utilisé dans la gestion du cache. Cet article expliquera comment utiliser Golang et Redis pour implémenter la gestion du cache, avec des exemples de code spécifiques.
1. Qu'est-ce que la gestion du cache ?
La gestion du cache fait référence au stockage des données fréquemment consultées dans une mémoire à accès rapide pour augmenter la vitesse de lecture des données. Dans le développement Web, les résultats des requêtes de base de données, les résultats de calcul ou d'autres données réutilisées sont généralement stockés dans le cache pour réduire le nombre d'accès à la base de données ou à d'autres ressources externes, améliorant ainsi les performances des applications.
2. Pourquoi choisir Redis ?
Redis est une base de données en mémoire open source hautes performances avec les caractéristiques suivantes :
3. Comment utiliser Redis pour implémenter la gestion du cache ?
Ce qui suit est un exemple pour illustrer comment utiliser Golang et Redis pour implémenter la gestion du cache.
Supposons que nous ayons un site Web de commerce électronique sur lequel les utilisateurs peuvent rechercher des produits connexes en fonction de mots-clés de produits. Afin d'améliorer les performances de recherche, nous pouvons stocker les résultats de recherche dans Redis et définir un délai d'expiration approprié. Lorsque l'utilisateur effectue la même recherche, le cache est d'abord recherché depuis Redis. Si le cache existe, les résultats sont renvoyés directement. Sinon, les résultats sont interrogés depuis la base de données et stockés dans le cache Redis.
Tout d'abord, nous devons installer la bibliothèque client Golang pour Redis, qui peut être installée à l'aide de la commande suivante :
go get github.com/go-redis/redis/v8
Ensuite, créez un fichier nommé redis_cache.go
et écrivez le code suivant :
package main import ( "encoding/json" "fmt" "github.com/go-redis/redis/v8" "time" ) type Product struct { ID int Name string Price float64 } func main() { // 创建Redis客户端 client := redis.NewClient(&redis.Options{ Addr: "localhost:6379", }) // Ping测试连接 pong, err := client.Ping().Result() if err != nil { fmt.Println("连接Redis失败:", err) return } fmt.Println("连接Redis成功:", pong) // 搜索关键字 keyword := "手机" // 在Redis中查找缓存 result, err := client.Get(keyword).Result() if err == redis.Nil { fmt.Println("缓存不存在") // 从数据库中查询数据 products := searchFromDB(keyword) // 将查询结果存入Redis,并设置过期时间 data, _ := json.Marshal(products) client.Set(keyword, data, 10*time.Minute) // 输出查询结果 fmt.Println("从数据库中查询:", products) } else if err != nil { fmt.Println("获取缓存失败:", err) } else { fmt.Println("从缓存中读取:", result) // 解析缓存数据 var products []Product json.Unmarshal([]byte(result), &products) // 输出查询结果 fmt.Println("从缓存中读取:", products) } } func searchFromDB(keyword string) []Product { // 模拟从数据库中查询数据的过程 products := []Product{ {1, "iPhone 12", 5999.0}, {2, "华为Mate 40", 4999.0}, {3, "小米10", 3499.0}, } return products }
La logique principale du code ci-dessus est la suivante :
Ensuite, nous compilons et exécutons le code :
go build redis_cache.go ./redis_cache # 输出结果: # 连接Redis成功: PONG # 缓存不存在 # 从数据库中查询: [{1 iPhone 12 5999} {2 华为Mate 40 4999} {3 小米10 3499}]
Vous pouvez voir que lorsque nous recherchons le mot-clé "téléphone mobile" pour la première fois, le cache n'existe pas, les données sont interrogées dans la base de données et le les résultats sont stockés dans le cache Redis. Recherchez à nouveau le même mot-clé et lisez les données directement à partir du cache Redis.
4. Résumé
Grâce aux exemples ci-dessus, nous avons implémenté avec succès la gestion du cache à l'aide de Golang et Redis. Dans le développement réel, nous pouvons choisir une stratégie de cache appropriée en fonction des besoins spécifiques de l'entreprise, et gérer raisonnablement le délai d'expiration du cache et la stratégie de mise à jour pour améliorer les performances du système et l'expérience utilisateur.
En apprenant à utiliser Golang et Redis pour mettre en œuvre la gestion du cache, je pense que les lecteurs comprendront mieux comment appliquer la technologie de mise en cache dans le développement Web. J'espère que cet article sera utile aux lecteurs pour apprendre et appliquer la gestion du cache.
Lien de référence :
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!