cache

package module
v1.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2020 License: MIT Imports: 11 Imported by: 0

README

Cache gin's middleware

Build Status codecov Go Report Card GoDoc

Gin middleware/handler to enable Cache.

Usage

Start using it

Download and install it:

$ go get github.com/dennypenta/cache

Import it in your code:

import "github.com/dennypenta/cache"
Canonical example:

See the example

package main

import (
	"fmt"
	"time"

	"github.com/dennypenta/cache"
	"github.com/dennypenta/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
    // CachePage在并发时会引起缓存数据错误,推荐使用CachePageAtomic
	r.GET("/cache_ping", cache.CachePageAtomic(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")
}

Documentation

Index

Constants

View Source
const (
	CACHE_MIDDLEWARE_KEY = "gincontrib.cache"
)

Variables

View Source
var CreateKey = func(u string) string {
	return urlEscape(PageCachePrefix, u)
}

CreateKey creates a package specific key for a given string

View Source
var CreateKeyFromRequest = func(r *http.Request) string {
	return urlEscape(PageCachePrefix, r.URL.RequestURI())
}
View Source
var (
	PageCachePrefix = "gincontrib.page.cache"
)

Functions

func Cache

func Cache(store *persistence.CacheStore) gin.HandlerFunc

Cache Middleware

func CachePage

func CachePage(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

CachePage Decorator

func CachePageAtomic

func CachePageAtomic(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

CachePageAtomic Decorator

func CachePageAtomicWithoutHeader added in v1.5.3

func CachePageAtomicWithoutHeader(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

CachePageAtomic Decorator

func CachePageWithoutHeader

func CachePageWithoutHeader(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

func CachePageWithoutQuery

func CachePageWithoutQuery(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

CachePageWithoutQuery add ability to ignore GET query parameters.

func RegisterResponseCacheGob

func RegisterResponseCacheGob()

RegisterResponseCacheGob registers the responseCache type with the encoding/gob package

func SiteCache

func SiteCache(store persistence.CacheStore, expire time.Duration) gin.HandlerFunc

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL