cache

package
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ServiceCache           = "service.cache"
	ServiceCacheBackend    = "service.cache.backend"
	ServiceCacheSerializer = "service.cache.serializer"
)

Variables

This section is empty.

Functions

func CacheBackendMustFromContainer

func CacheBackendMustFromContainer(serviceContainer containercontract.Container) cachecontract.Backend

func CacheBackendMustFromResolver

func CacheBackendMustFromResolver(resolver containercontract.Resolver) cachecontract.Backend

func CacheMustFromContainer

func CacheMustFromContainer(serviceContainer containercontract.Container) cachecontract.Cache

func CacheMustFromResolver

func CacheMustFromResolver(resolver containercontract.Resolver) cachecontract.Cache

func CacheSerializerMustFromContainer

func CacheSerializerMustFromContainer(serviceContainer containercontract.Container) cachecontract.Serializer

func CacheSerializerMustFromResolver

func CacheSerializerMustFromResolver(resolver containercontract.Resolver) cachecontract.Serializer

func NewJsonSerializer

func NewJsonSerializer() cachecontract.Serializer

func Remember

func Remember(
	cacheInstance cachecontract.Cache,
	key string,
	ttl time.Duration,
	callback func(ctx context.Context) (any, error),
	option *RememberOption,
) (any, error)

Types

type InMemoryBackend

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

func NewInMemoryBackend

func NewInMemoryBackend(
	maxItems int,
	cleanupInterval time.Duration,
	clockInstance clockcontract.Clock,
) *InMemoryBackend

func (*InMemoryBackend) Clear

func (instance *InMemoryBackend) Clear() error

func (*InMemoryBackend) Close

func (instance *InMemoryBackend) Close() error

func (*InMemoryBackend) Decrement

func (instance *InMemoryBackend) Decrement(key string, delta int64) (int64, error)

func (*InMemoryBackend) Delete

func (instance *InMemoryBackend) Delete(key string) error

func (*InMemoryBackend) DeleteMultiple

func (instance *InMemoryBackend) DeleteMultiple(keys []string) error

func (*InMemoryBackend) Get

func (instance *InMemoryBackend) Get(key string) ([]byte, bool, error)

func (*InMemoryBackend) Has

func (instance *InMemoryBackend) Has(key string) (bool, error)

func (*InMemoryBackend) Increment

func (instance *InMemoryBackend) Increment(key string, delta int64) (int64, error)

func (*InMemoryBackend) Many

func (instance *InMemoryBackend) Many(keys []string) (map[string][]byte, error)

func (*InMemoryBackend) Set

func (instance *InMemoryBackend) Set(
	key string,
	payload []byte,
	ttl time.Duration,
) error

func (*InMemoryBackend) SetMultiple

func (instance *InMemoryBackend) SetMultiple(items map[string][]byte, ttl time.Duration) error

type Item

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

func NewItem

func NewItem(
	key string,
	payload []byte,
	createdAt time.Time,
	expiresAt *time.Time,
) *Item

func (*Item) CreatedAt

func (instance *Item) CreatedAt() time.Time

func (*Item) ExpiresAt

func (instance *Item) ExpiresAt() *time.Time

func (*Item) HitCount

func (instance *Item) HitCount() uint64

func (*Item) Key

func (instance *Item) Key() string

func (*Item) LastAccessedAt

func (instance *Item) LastAccessedAt() time.Time

func (*Item) Payload

func (instance *Item) Payload() []byte

func (*Item) Touch

func (instance *Item) Touch(accessTime time.Time)

type JsonSerializer

type JsonSerializer struct{}

func (*JsonSerializer) Deserialize

func (instance *JsonSerializer) Deserialize(payload []byte) (any, error)

func (*JsonSerializer) Serialize

func (instance *JsonSerializer) Serialize(value any) ([]byte, error)

type Manager

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

func NewManager

func NewManager(
	backend cachecontract.Backend,
	serializer cachecontract.Serializer,
) *Manager

func (*Manager) Clear

func (instance *Manager) Clear() error

func (*Manager) Close

func (instance *Manager) Close() error

func (*Manager) Decrement

func (instance *Manager) Decrement(key string, delta int64) (int64, error)

func (*Manager) Delete

func (instance *Manager) Delete(key string) error

func (*Manager) DeleteMultiple

func (instance *Manager) DeleteMultiple(keys []string) error

func (*Manager) Get

func (instance *Manager) Get(key string) (any, bool, error)

func (*Manager) Has

func (instance *Manager) Has(key string) (bool, error)

func (*Manager) Increment

func (instance *Manager) Increment(key string, delta int64) (int64, error)

func (*Manager) Many

func (instance *Manager) Many(keys []string) (map[string]any, error)

func (*Manager) Set

func (instance *Manager) Set(key string, value any, ttl time.Duration) error

func (*Manager) SetMultiple

func (instance *Manager) SetMultiple(items map[string]any, ttl time.Duration) error

type RememberOption

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

func NewDefaultRememberOption

func NewDefaultRememberOption() *RememberOption

func (*RememberOption) EnableStampedeProtection

func (instance *RememberOption) EnableStampedeProtection() bool

func (*RememberOption) IsCancelable

func (instance *RememberOption) IsCancelable() bool

func (*RememberOption) WaitTimeout

func (instance *RememberOption) WaitTimeout() time.Duration

func (*RememberOption) WithCancelable

func (instance *RememberOption) WithCancelable(isCancelable bool) *RememberOption

func (*RememberOption) WithStampedeProtectionEnabled

func (instance *RememberOption) WithStampedeProtectionEnabled(enableStampedeProtection bool) *RememberOption

func (*RememberOption) WithWaitTimeout

func (instance *RememberOption) WithWaitTimeout(waitTimeout time.Duration) *RememberOption

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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