Go-Gin-Example 第九部分 实现redis缓存
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-redis/redis"
"time"
)
var rdb *redis.Client
func init() {
rdb = redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // 默认没有密码,如果有则填写
DB: 0, // 默认数据库为0,可以不写
})
}
func main() {
router := gin.Default()
router.GET("/welcome", func(c *gin.Context) {
key := "welcome"
val, err := rdb.Get(key).Result()
if err != nil {
// 缓存未命中,执行后续逻辑并缓存结果
val = "Hello, World!"
rdb.Set(key, val, 5*time.Minute) // 设置缓存,有效期为5分钟
}
c.JSON(200, gin.H{
"message": val,
})
})
router.Run(":8080")
}
这段代码使用了Go语言的gin框架和go-redis库来实现一个简单的Redis缓存系统。在/welcome
路由处,首先尝试从Redis缓存中获取数据。如果缓存未命中(即出现错误),则执行后续逻辑(这里是返回一个简单的欢迎消息)并将结果存储在Redis缓存中,设置的有效期为5分钟。这样,后续的请求就可以直接从缓存中获取数据,减少了数据库的负担,并提高了系统的响应速度。
评论已关闭