Documentation
¶
Overview ¶
Package cache provides ready-to-use in-memory cache mechanisms
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultBigCacheConfig ¶
Types ¶
type EventWithContext ¶
type EventWithContext struct {
*tree.NodeChangeEvent
Ctx context.Context
}
EventWithContext composes a NodeChangeEvent and a context
type EventsBatcher ¶
type EventsBatcher struct {
Events chan *EventWithContext
Done chan bool
// contains filtered or unexported fields
}
EventsBatcher debounces events on a given timeframe and calls process on them afterward Use globalCtx.Done() to stop listening to events
func NewEventsBatcher ¶
func NewEventsBatcher(ctx context.Context, debounce time.Duration, idle time.Duration, max int, atomic bool, process func(context.Context, ...*tree.NodeChangeEvent)) *EventsBatcher
NewEventsBatcher initializes a new EventsBatcher
func (*EventsBatcher) Start ¶
func (b *EventsBatcher) Start()
Start starts listening to incoming events
type InstrumentedCache ¶
InstrumentedCache wraps BigCache with metrics
func (*InstrumentedCache) Close ¶
func (i *InstrumentedCache) Close() error
Close stops internal timer for reporting statistics
func (*InstrumentedCache) Delete ¶
func (i *InstrumentedCache) Delete(key string) error
func (*InstrumentedCache) KeysByPrefix ¶
func (i *InstrumentedCache) KeysByPrefix(prefix string) (res []string, e error)
func (*InstrumentedCache) Reset ¶
func (i *InstrumentedCache) Reset() error
type KeyMutex ¶
type KeyMutex struct {
// contains filtered or unexported fields
}
KeyMutex allows locking resource by a unique ID instead of using a global lock
type Sharded ¶
type Sharded interface {
Set(key string, entry []byte) error
Get(key string) ([]byte, error)
Delete(key string) error
Reset() error
KeysByPrefix(prefix string) ([]string, error)
Close() error
}
func NewSharded ¶
NewSharded creates a cache instance instrumented with a regular report of statistics
type Short ¶
type Short interface {
Get(key string) (value interface{}, ok bool)
Set(key string, value interface{})
SetWithExpiry(key string, value interface{}, duration time.Duration)
Delete(k string)
Reset() error
KeysByPrefix(prefix string) ([]string, error)
Iterate(it func(key string, val interface{}))
Close() error
}
Click to show internal directories.
Click to hide internal directories.