cache

package module
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2025 License: MIT Imports: 3 Imported by: 0

README

cache 🔗

License Coverage GitHub Workflow Status Go Report Card Go PKG

Simple cache with using different libraries.

go get github.com/worldline-go/cache

Usage

Result of cache get, set and delete methods; stores could be force to types.

Get(ctx context.Context, key K) (V, bool, error)
Set(ctx context.Context, key K, value V) error
Delete(ctx context.Context, key K) error
memory

To not use max items and ttl, you can pass empty config cache.WithStoreConfig(&memory.Config{}).

priceCache, err := cache.New[string, int](ctx,
    memory.Store,
    cache.WithStoreConfig(&memory.Config{
        MaxItems: 100,
        TTL:      10 * time.Minute,
    }),
)

err := priceCache.Set(ctx, "key", 100)
v, ok, err := priceCache.Get(ctx, "key")
redis

Use github.com/worldline-go/conn/connredis to create a redis client.

redisClient, err := connredis.New(connredis.Config{
    Address: s.container.Address(),
})
if err != nil {
    // handle error
}

c, err := cache.New(s.T().Context(),
    redis.Store(redisClient),
    cache.WithStoreConfig(redis.Config{
        TTL: 3 * time.Second,
    }),
)
if err != nil {
    // handle error
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrStoreNotExist = errors.New("store does not exist")

Functions

This section is empty.

Types

type Cacher

type Cacher[K comparable, V any] interface {
	Get(ctx context.Context, key K) (V, bool, error)
	Set(ctx context.Context, key K, value V) error
	Delete(ctx context.Context, key K) error
}

func New

func New[K comparable, V any, C any](ctx context.Context, store Store[K, V, C], opts ...Option[C]) (Cacher[K, V], error)

type Option

type Option[T any] func(*option[T])

func WithStoreConfig added in v0.2.0

func WithStoreConfig[T any](cfg T) Option[T]

type Store added in v0.2.0

type Store[K comparable, V any, C any] func(ctx context.Context, config C) (Cacher[K, V], error)

Directories

Path Synopsis
store

Jump to

Keyboard shortcuts

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