Files
grafana/pkg/infra/distcache/memory_storage.go
T
2019-03-11 10:49:09 +01:00

36 lines
622 B
Go

package distcache
import (
"time"
gocache "github.com/patrickmn/go-cache"
)
type memoryStorage struct {
c *gocache.Cache
}
func newMemoryStorage() *memoryStorage {
return &memoryStorage{
c: gocache.New(time.Minute*30, time.Minute*30),
}
}
func (s *memoryStorage) Put(key string, val interface{}, expires time.Duration) error {
return s.c.Add(key, val, expires)
}
func (s *memoryStorage) Get(key string) (interface{}, error) {
val, exist := s.c.Get(key)
if !exist {
return nil, ErrCacheItemNotFound
}
return val, nil
}
func (s *memoryStorage) Delete(key string) error {
s.c.Delete(key)
return nil
}