smartcache

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2020 License: MIT Imports: 5 Imported by: 0

README

smartcache

Test Status Coverage Status MIT License GoDoc

The smartcache realizes smart in memory cache generation to minimize process blocks by using soft expire limit

Synopsis

var (
    expire     = 5*time.Minute
    softExpire = 1*time.Minute
)
ca := smartcache.New(expire, softExpire, func(ctx context.Context) (interface{}, error) {
    val, err := genCache(ctx)
    return val, err
})

Description

In in-memory cache generation, there are problems, for example, thundering herd problems, blocking processing when regenerating or etc., but smartcache avoids them by setting a soft expire limit.

Installation

% go get github.com/Songmu/smartcache

Author

Songmu

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

Cache for cache

func New

func New(expire, softExpire time.Duration, gen func(context.Context) (interface{}, error)) *Cache

New returns new Cache

func (*Cache) Get

func (ca *Cache) Get(ctx context.Context) (interface{}, error)

Get the cached value

Jump to

Keyboard shortcuts

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