const ( DEFAULT = time.Duration(0) FOREVER = time.Duration(-1) CACHE_MIDDLEWARE_KEY = "gincontrib.cache" )
var ( PageCachePrefix = "gincontrib.page.cache" ErrCacheMiss = errors.New("cache: key not found.") ErrNotStored = errors.New("cache: not stored.") ErrNotSupport = errors.New("cache: not support.") )
func Cache(store *CacheStore) gin.HandlerFunc
Cache Middleware
func CachePage(store CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc
Cache Decorator
func SiteCache(store CacheStore, expire time.Duration) gin.HandlerFunc
type CacheStore interface { Get(key string, value interface{}) error Set(key string, value interface{}, expire time.Duration) error Add(key string, value interface{}, expire time.Duration) error Replace(key string, data interface{}, expire time.Duration) error Delete(key string) error Increment(key string, data uint64) (uint64, error) Decrement(key string, data uint64) (uint64, error) Flush() error }
type InMemoryStore struct { cache.Cache }
func NewInMemoryStore(defaultExpiration time.Duration) *InMemoryStore
func (c *InMemoryStore) Add(key string, value interface{}, expires time.Duration) error
func (c *InMemoryStore) Decrement(key string, n uint64) (uint64, error)
func (c *InMemoryStore) Delete(key string) error
func (c *InMemoryStore) Flush() error
func (c *InMemoryStore) Get(key string, value interface{}) error
func (c *InMemoryStore) Increment(key string, n uint64) (uint64, error)
func (c *InMemoryStore) Replace(key string, value interface{}, expires time.Duration) error
func (c *InMemoryStore) Set(key string, value interface{}, expires time.Duration) error
type MemcachedStore struct { *memcache.Client // contains filtered or unexported fields }
func NewMemcachedStore(hostList []string, defaultExpiration time.Duration) *MemcachedStore
func (c *MemcachedStore) Add(key string, value interface{}, expires time.Duration) error
func (c *MemcachedStore) Decrement(key string, delta uint64) (uint64, error)
func (c *MemcachedStore) Delete(key string) error
func (c *MemcachedStore) Flush() error
func (c *MemcachedStore) Get(key string, value interface{}) error
func (c *MemcachedStore) Increment(key string, delta uint64) (uint64, error)
func (c *MemcachedStore) Replace(key string, value interface{}, expires time.Duration) error
func (c *MemcachedStore) Set(key string, value interface{}, expires time.Duration) error
Wraps the Redis client to meet the Cache interface.
type RedisStore struct {
// contains filtered or unexported fields
}
func NewRedisCache(host string, password string, defaultExpiration time.Duration) *RedisStore
until redigo supports sharding/clustering, only one host will be in hostList
func (c *RedisStore) Add(key string, value interface{}, expires time.Duration) error
func (c *RedisStore) Decrement(key string, delta uint64) (newValue uint64, err error)
func (c *RedisStore) Delete(key string) error
func (c *RedisStore) Flush() error
func (c *RedisStore) Get(key string, ptrValue interface{}) error
func (c *RedisStore) Increment(key string, delta uint64) (uint64, error)
func (c *RedisStore) Replace(key string, value interface{}, expires time.Duration) error
func (c *RedisStore) Set(key string, value interface{}, expires time.Duration) error