func (gc *GoCache) Add(key []byte, value interface{}) error {
	return gc.Cache.Add(byteKeyToStringKey(key), value, gocache.DefaultExpiration)
}
Add adds an item to the cache only if an item doesn't already exist for the
given key, or if the existing item has expired. Returns an error otherwise.
package common
import (
	"time"
	gocache "github.com/patrickmn/go-cache"
)
type Cache interface {
	Add(key []byte, value interface{}) error
	Get(key []byte) (value interface{}, ok bool)
	Set(key []byte, value interface{}) error
	SetWithExpiration(key []byte, value interface{}, expiration time.Duration) error
	Delete(key []byte) error
}
type GoCache struct {
	*gocache.Cache
}
func NewGoCache(defaultExpiration, cleanupInterval time.Duration) *GoCache {
	return &GoCache{
		Cache: gocache.New(defaultExpiration, cleanupInterval),
	}
}