mirror of
https://github.com/eosswedenorg/thalos
synced 2026-06-16 04:24:56 +02:00
31 lines
595 B
Go
31 lines
595 B
Go
package cache
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
type Cache struct {
|
|
store Store
|
|
prefix string
|
|
}
|
|
|
|
// Create a new cache
|
|
func NewCache(prefix string, store Store) *Cache {
|
|
return &Cache{
|
|
store: store,
|
|
prefix: prefix,
|
|
}
|
|
}
|
|
|
|
func (cache *Cache) Get(ctx context.Context, key string, value any) error {
|
|
return cache.store.Get(ctx, cache.key(key), value)
|
|
}
|
|
|
|
func (cache *Cache) Set(ctx context.Context, key string, value any, ttl time.Duration) error {
|
|
return cache.store.Set(ctx, cache.key(key), value, ttl)
|
|
}
|
|
|
|
func (cache *Cache) key(key string) string {
|
|
return cache.prefix + "::" + key
|
|
}
|