gin/hertz redis cache
gin-cache/[hertz-cache](hertz-contrib/cache (github.com))
package main
import (
"context"
"log"
"net/http"
"time"
"github.com/cloudwego/hertz/pkg/app"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/go-redis/redis/v8"
"github.com/hertz-contrib/cache"
"github.com/hertz-contrib/cache/persist"
)
var (
redisStore *persist.RedisStore
)
// 注册中间件
func useRedisMw() app.HandlerFunc {
return cache.NewCacheByRequestPath(redisStore, 2*time.Minute)
}
func main() {
h := server.New()
redisStore = persist.NewRedisStore(redis.NewClient(&redis.Options{
Network: "tcp",
Addr: "localhost:6379",
}))
h.GET("/hello", useRedisMw(), func(ctx context.Context, c *app.RequestContext) {
log.Println("request hello")
c.String(http.StatusOK, "hello world")
})
h.GET("/clean", func(ctx context.Context, c *app.RequestContext) {
// 删除缓存
err := redisStore.Delete(ctx, "/hello")
if err != nil {
c.String(http.StatusInternalServerError, "clean failed")
return
}
c.String(http.StatusOK, "clean success")
})
h.Spin()
}
本文作者:七つ一旋桜
本文链接:https://www.cnblogs.com/poifa/p/17129329.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步