Import path:
gitlab.soludian.com/soludian/fountain/libs/cache/lfu_cache
lfu_cache
import "gitlab.soludian.com/soludian/fountain/libs/cache/lfu_cache"Index
- Constants
- Variables
- func NewLFUCache() cache.Cache
- type Cache
- func (lc *Cache) ClearAll(ctx context.Context) error
- func (rc *Cache) Close() error
- func (lc *Cache) Decr(key string) (int64, error)
- func (lc *Cache) Delete(key string) error
- func (rc *Cache) Get(key string) ([]byte, error)
- func (rc *Cache) GetDefaultConfig() string
- func (rc *Cache) GetMulti(keys []string) ([][]byte, error)
- func (lc *Cache) Has(key string) bool
- func (lc *Cache) Incr(key string) (int64, error)
- func (lc *Cache) Peek(key string) (any, error)
- func (lc *Cache) PeekMulti(keys []string) ([]any, error)
- func (lc *Cache) Put(key string, val any, ttl time.Duration) error
- func (lc *Cache) PutMulti(values map[string]any, ttl time.Duration) error
- func (rc *Cache) Reset() error
- func (rc *Cache) Set(key string, val []byte, ttl time.Duration) error
- func (rc *Cache) SetMulti(values map[string][]byte, ttl time.Duration) error
- func (rc *Cache) SetName(name string)
- func (lc *Cache) StartAndGC(configs ...string) error
- type Item
Constants
const (
KPackageName = "lfu_cache"
DefaultCapacity = 10 * 1024
)Variables
var DefaultConfig = fmt.Sprintf(`{"capacity": %d}`, DefaultCapacity)func NewLFUCache
func NewLFUCache() cache.CacheNewLFUCache 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.
type Cache struct {
// contains filtered or unexported fields
}func (*Cache) ClearAll
func (lc *Cache) ClearAll(ctx context.Context) errorClear all cache.
func (*Cache) Close
func (rc *Cache) Close() errorClose the database
func (*Cache) Decr
func (lc *Cache) Decr(key string) (int64, error)Decrement a cached int value by key, as a counter.
func (*Cache) Delete
func (lc *Cache) Delete(key string) errorDelete cached value by key. Should not return error if key not found
func (*Cache) Get
func (rc *Cache) Get(key string) ([]byte, error)Get gets a key's value from memcache.
func (*Cache) GetDefaultConfig
func (rc *Cache) GetDefaultConfig() stringfunc (*Cache) GetMulti
func (rc *Cache) GetMulti(keys []string) ([][]byte, error)GetMulti gets one or keys values from ssdb.
func (*Cache) Has
func (lc *Cache) Has(key string) boolCheck cache existed by key.
func (*Cache) Incr
func (lc *Cache) Incr(key string) (int64, error)Increment a cached int value by key, as a counter.
func (*Cache) Peek
func (lc *Cache) Peek(key string) (any, error)Peek a cached value by key.
func (*Cache) PeekMulti
func (lc *Cache) PeekMulti(keys []string) ([]any, error)PeekMulti is a batch version of Get.
func (*Cache) Put
func (lc *Cache) Put(key string, val any, ttl time.Duration) errorSet a cached value with key and expire time.
func (*Cache) PutMulti
func (lc *Cache) PutMulti(values map[string]any, ttl time.Duration) errorSet a cached values with key and expire time
func (*Cache) Reset
func (rc *Cache) Reset() errorfunc (*Cache) Set
func (rc *Cache) Set(key string, val []byte, ttl time.Duration) errorfunc (*Cache) SetMulti
func (rc *Cache) SetMulti(values map[string][]byte, ttl time.Duration) errorfunc (*Cache) SetName
func (rc *Cache) SetName(name string)func (*Cache) StartAndGC
func (lc *Cache) StartAndGC(configs ...string) errorStart 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
type Item struct {
Key string
Value any // Value
}Generated by gomarkdoc