cache

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: MIT Imports: 20 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddCleanTask

func AddCleanTask(task func() error, keys ...string)

AddCleanTask adds a clean task on given keys.

func TotalWeights

func TotalWeights(c []NodeConf) int

TotalWeights returns the total weights of given nodes.

Types

type Cache

type Cache interface {
	Del(keys ...string) error
	Get(key string, v interface{}) error
	IsNotFound(err error) bool
	Set(key string, v interface{}) error
	SetWithExpire(key string, v interface{}, expire time.Duration) error
	Take(v interface{}, key string, query func(v interface{}) error) error
	TakeWithExpire(v interface{}, key string, query func(v interface{}, expire time.Duration) error) error
}

Cache interface is used to define the cache implementation.

func New

func New(c ClusterConf, barrier syncx.SharedCalls, st *Stat, errNotFound error,
	opts ...Option) Cache

New returns a Cache.

func NewNode

func NewNode(rds *redis.Redis, barrier syncx.SharedCalls, st *Stat,
	errNotFound error, opts ...Option) Cache

NewNode returns a cacheNode. rds is the underlying redis node or cluster. barrier is the barrier that maybe shared with other cache nodes on cache cluster. st is used to stat the cache. errNotFound defines the error that returned on cache not found. opts are the options that customize the cacheNode.

type CacheConf

type CacheConf = ClusterConf

CacheConf is an alias of ClusterConf.

type ClusterConf

type ClusterConf []NodeConf

A ClusterConf is the config of a redis cluster that used as cache.

type NodeConf

type NodeConf struct {
	redis.RedisConf
	Weight int `json:",default=100"`
}

A NodeConf is the config of a redis node that used as cache.

type Option

type Option func(o *Options)

Option defines the method to customize an Options.

func WithExpiry

func WithExpiry(expiry time.Duration) Option

WithExpiry returns a func to customize a Options with given expiry.

func WithNotFoundExpiry

func WithNotFoundExpiry(expiry time.Duration) Option

WithNotFoundExpiry returns a func to customize a Options with given not found expiry.

type Options

type Options struct {
	Expiry         time.Duration
	NotFoundExpiry time.Duration
}

An Options is used to store the cache options.

type Stat

type Stat struct {

	// export the fields to let the unit tests working,
	// reside in internal package, doesn't matter.
	Total   uint64
	Hit     uint64
	Miss    uint64
	DbFails uint64
	// contains filtered or unexported fields
}

A Stat is used to stat the cache.

func NewStat

func NewStat(name string) *Stat

NewStat returns a Stat.

func (*Stat) IncrementDbFails

func (s *Stat) IncrementDbFails()

IncrementDbFails increments the db fail count.

func (*Stat) IncrementHit

func (s *Stat) IncrementHit()

IncrementHit increments the hit count.

func (*Stat) IncrementMiss

func (s *Stat) IncrementMiss()

IncrementMiss increments the miss count.

func (*Stat) IncrementTotal

func (s *Stat) IncrementTotal()

IncrementTotal increments the total count.

Jump to

Keyboard shortcuts

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