Cache
Gin middleware/handler to enable Cache
Install / Use
/learn @gin-contrib/CacheREADME
Cache middleware
Gin middleware/handler to enable Cache.
Usage
Start using it
Download and install it:
go get github.com/gin-contrib/cache
Import it in your code:
import "github.com/gin-contrib/cache"
InMemory Example
See the example
package main
import (
"fmt"
"time"
"github.com/gin-contrib/cache"
"github.com/gin-contrib/cache/persistence"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
store := persistence.NewInMemoryStore(time.Second)
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong "+fmt.Sprint(time.Now().Unix()))
})
// Cached Page
r.GET("/cache_ping", cache.CachePage(store, time.Minute, func(c *gin.Context) {
c.String(200, "pong "+fmt.Sprint(time.Now().Unix()))
}))
// Listen and Server in 0.0.0.0:8080
r.Run(":8080")
}
You can also use the Delete and Flush methods with the InMemory store:
// Delete a specific cache entry by key
err := store.Delete("your-cache-key")
if err != nil {
// handle error
}
// Flush all cache entries
err = store.Flush()
if err != nil {
// handle error
}
Redis Example
Here is a complete example using Redis as the cache backend with NewRedisCacheWithURL:
package main
import (
"fmt"
"time"
"github.com/gin-contrib/cache"
"github.com/gin-contrib/cache/persistence"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// Basic usage:
store := persistence.NewRedisCacheWithURL("redis://localhost:6379", time.Minute)
// Advanced configuration with password and DB number:
// store := persistence.NewRedisCacheWithURL("redis://:password@localhost:6379/0", time.Minute)
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong "+fmt.Sprint(time.Now().Unix()))
})
// Cached Page
r.GET("/cache_ping", cache.CachePage(store, time.Minute, func(c *gin.Context) {
c.String(200, "pong "+fmt.Sprint(time.Now().Unix()))
}))
// Listen and serve on 0.0.0.0:8080
r.Run(":8080")
}
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
