Go-Gin-Example 第九部分 实现redis缓存
    		       		warning:
    		            这篇文章距离上次修改已过447天,其中的内容可能已经有所变动。
    		        
        		                
                
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分钟。这样,后续的请求就可以直接从缓存中获取数据,减少了数据库的负担,并提高了系统的响应速度。
评论已关闭