diff --git a/cache/memcache/memcache.go b/cache/memcache/memcache.go deleted file mode 100644 index 92e39a52..00000000 --- a/cache/memcache/memcache.go +++ /dev/null @@ -1,80 +0,0 @@ -// Package memcache is a memcache implementation of the Cache -package memcache - -import ( - "encoding/json" - - "github.com/bradfitz/gomemcache/memcache" - "github.com/unistack-org/micro/v3/cache" -) - -type memcacheCache struct { - options cache.Options - client *memcache.Client -} - -type memcacheItem struct { - Key string - Value interface{} -} - -func (m *memcacheCache) Init(opts ...cache.Option) error { - for _, o := range opts { - o(&m.options) - } - return nil -} - -func (m *memcacheCache) Get(key string) (interface{}, error) { - item, err := m.client.Get(key) - if err != nil { - return nil, err - } - - var mc *memcacheItem - - if err := json.Unmarshal(item.Value, &mc); err != nil { - return nil, err - } - - return mc.Value, nil -} - -func (m *memcacheCache) Set(key string, val interface{}) error { - b, err := json.Marshal(val) - if err != nil { - return err - } - - return m.client.Set(&memcache.Item{ - Key: key, - Value: b, - }) -} - -func (m *memcacheCache) Delete(key string) error { - return m.client.Delete(key) -} - -func (m *memcacheCache) String() string { - return "memcache" -} - -// NewCache returns a new memcache Cache -func NewCache(opts ...cache.Option) cache.Cache { - var options cache.Options - for _, o := range opts { - o(&options) - } - - // get and set the nodes - nodes := options.Nodes - if len(nodes) == 0 { - nodes = []string{"localhost:11211"} - } - - return &memcacheCache{ - options: options, - client: memcache.New(nodes...), - } -} diff --git a/cache/memory/memory.go b/cache/memory/memory.go deleted file mode 100644 index 949337c6..00000000 --- a/cache/memory/memory.go +++ /dev/null @@ -1,56 +0,0 @@ -// Package memory is an in memory cache -package memory - -import ( - "sync" - - "github.com/unistack-org/micro/v3/cache" - "github.com/unistack-org/micro/v3/errors" -) - -type memoryCache struct { - // TODO: use a decent caching library - sync.RWMutex - values map[string]interface{} -} - -func (m *memoryCache) Init(opts ...cache.Option) error { - // TODO: implement - return nil -} - -func (m *memoryCache) Get(key string) (interface{}, error) { - m.RLock() - defer m.RUnlock() - - v, ok := m.values[key] - if !ok { - return nil, errors.NotFound("go.micro.cache", key+" not found") - } - - return v, nil -} - -func (m *memoryCache) Set(key string, val interface{}) error { - m.Lock() - m.values[key] = val - m.Unlock() - return nil -} - -func (m *memoryCache) Delete(key string) error { - m.Lock() - delete(m.values, key) - m.Unlock() - return nil -} - -func (m *memoryCache) String() string { - return "memory" -} - -func NewCache(opts ...cache.Option) cache.Cache { - return &memoryCache{ - values: make(map[string]interface{}), - } -} diff --git a/go.mod b/go.mod index accff27f..178ad010 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.15 require ( github.com/BurntSushi/toml v0.3.1 - github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b github.com/caddyserver/certmagic v0.10.6 github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible