Help us shape the future of Go! Take the 2026 Go Developer Survey

persist

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrCacheMiss = errors.New("persist cache miss error")

ErrCacheMiss represent the cache key does not exist in the store

Functions

func Deserialize

func Deserialize(payload []byte, ptr interface{}) (err error)

Deserialize will deserialize the passed []byte into the passed ptr interface{}

func Serialize

func Serialize(value interface{}) ([]byte, error)

Serialize returns a []byte representing the passed value

Types

type CacheStore

type CacheStore interface {
	// Get retrieves an item from the Cache. if key does not exist in the store, return ErrCacheMiss
	Get(ctx context.Context, key string, value interface{}) error

	// Set sets an item to the Cache, replacing any existing item.
	Set(ctx context.Context, key string, value interface{}, expire time.Duration) error

	// Delete removes an item from the Cache. Does nothing if the key is not in the Cache.
	Delete(ctx context.Context, key string) error
}

CacheStore is the interface of a Cache backend

type MemoryStore

type MemoryStore struct {
	Cache *ttlcache.Cache
}

MemoryStore local memory cache store

func NewMemoryStore

func NewMemoryStore(defaultExpiration time.Duration) *MemoryStore

NewMemoryStore allocate a local memory store with default expiration

func (*MemoryStore) Delete

func (c *MemoryStore) Delete(ctx context.Context, key string) error

Delete remove key in memory store, do nothing if key doesn't exist

func (*MemoryStore) Get

func (c *MemoryStore) Get(ctx context.Context, key string, value interface{}) error

Get get key in memory store, if key doesn't exist, return ErrCacheMiss

func (*MemoryStore) Set

func (c *MemoryStore) Set(ctx context.Context, key string, value interface{}, expireDuration time.Duration) error

Set put key value pair to memory store, and expire after expireDuration

type RedisStore

type RedisStore struct {
	RedisClient *redis.Client
}

RedisStore store http response in redis

func NewRedisStore

func NewRedisStore(redisClient *redis.Client) *RedisStore

NewRedisStore create a redis memory store with redis client

func (*RedisStore) Delete

func (store *RedisStore) Delete(ctx context.Context, key string) error

Delete remove key in redis, do nothing if key doesn't exist

func (*RedisStore) Get

func (store *RedisStore) Get(ctx context.Context, key string, value interface{}) error

Get retrieves an item from redis, if key doesn't exist, return ErrCacheMiss

func (*RedisStore) Set

func (store *RedisStore) Set(ctx context.Context, key string, value interface{}, expire time.Duration) error

Set put key value pair to redis, and expire after expireDuration

Jump to

Keyboard shortcuts

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