Skip to content

Import path: gitlab.soludian.com/soludian/fountain/libs/cache/lfu_cache

lfu_cache

go
import "gitlab.soludian.com/soludian/fountain/libs/cache/lfu_cache"

Index

Constants

go
const (
    KPackageName    = "lfu_cache"
    DefaultCapacity = 10 * 1024
)

Variables

go
var DefaultConfig = fmt.Sprintf(`{"capacity": %d}`, DefaultCapacity)

func NewLFUCache

go
func NewLFUCache() cache.Cache

NewLFUCache creates a new empty cache with the given capacity.

type Cache

LFUCache is a typical LRU cache implementation. If the cache reaches the capacity, the least used item is deleted from the cache. Note the capacity is not the number of items, but the total sum of the Size() of each item.

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

func (*Cache) ClearAll

go
func (lc *Cache) ClearAll(ctx context.Context) error

Clear all cache.

func (*Cache) Close

go
func (rc *Cache) Close() error

Close the database

func (*Cache) Decr

go
func (lc *Cache) Decr(key string) (int64, error)

Decrement a cached int value by key, as a counter.

func (*Cache) Delete

go
func (lc *Cache) Delete(key string) error

Delete cached value by key. Should not return error if key not found

func (*Cache) Get

go
func (rc *Cache) Get(key string) ([]byte, error)

Get gets a key's value from memcache.

func (*Cache) GetDefaultConfig

go
func (rc *Cache) GetDefaultConfig() string

func (*Cache) GetMulti

go
func (rc *Cache) GetMulti(keys []string) ([][]byte, error)

GetMulti gets one or keys values from ssdb.

func (*Cache) Has

go
func (lc *Cache) Has(key string) bool

Check cache existed by key.

func (*Cache) Incr

go
func (lc *Cache) Incr(key string) (int64, error)

Increment a cached int value by key, as a counter.

func (*Cache) Peek

go
func (lc *Cache) Peek(key string) (any, error)

Peek a cached value by key.

func (*Cache) PeekMulti

go
func (lc *Cache) PeekMulti(keys []string) ([]any, error)

PeekMulti is a batch version of Get.

func (*Cache) Put

go
func (lc *Cache) Put(key string, val any, ttl time.Duration) error

Set a cached value with key and expire time.

func (*Cache) PutMulti

go
func (lc *Cache) PutMulti(values map[string]any, ttl time.Duration) error

Set a cached values with key and expire time

func (*Cache) Reset

go
func (rc *Cache) Reset() error

func (*Cache) Set

go
func (rc *Cache) Set(key string, val []byte, ttl time.Duration) error

func (*Cache) SetMulti

go
func (rc *Cache) SetMulti(values map[string][]byte, ttl time.Duration) error

func (*Cache) SetName

go
func (rc *Cache) SetName(name string)

func (*Cache) StartAndGC

go
func (lc *Cache) StartAndGC(configs ...string) error

Start gc routine based on config string settings. config: must be in the format {"capacity": 1024}

type Item

Item is what is stored in the cache

go
type Item struct {
    Key   string
    Value any // Value
}

Generated by gomarkdoc