Documentation ¶
Index ¶
- Constants
- Variables
- func AddCacheFlagsToCmd(cmd *cobra.Command, opts ...Options) func() (*Cache, error)
- func CollectMetrics(client *redis.Client, registry MetricsRegistry)
- func NewArgoRedisHook(reconnectCallback func()) *argoRedisHooks
- func NewTwoLevelClient(client CacheClient, inMemoryExpiration time.Duration) *twoLevelClient
- type Cache
- func (c *Cache) GetClient() CacheClient
- func (c *Cache) GetItem(key string, item interface{}) error
- func (c *Cache) NotifyUpdated(key string) error
- func (c *Cache) OnUpdated(ctx context.Context, key string, callback func() error) error
- func (c *Cache) RenameItem(oldKey string, newKey string, expiration time.Duration) error
- func (c *Cache) SetClient(client CacheClient)
- func (c *Cache) SetItem(key string, item interface{}, opts *CacheActionOpts) error
- type CacheActionOpts
- type CacheClient
- type InMemoryCache
- func (i *InMemoryCache) Delete(key string) error
- func (i *InMemoryCache) Flush()
- func (i *InMemoryCache) Get(key string, obj interface{}) error
- func (i *InMemoryCache) HasSame(key string, obj interface{}) (bool, error)
- func (i *InMemoryCache) Items(createNewObject func() interface{}) (map[string]interface{}, error)
- func (i *InMemoryCache) NotifyUpdated(key string) error
- func (i *InMemoryCache) OnUpdated(ctx context.Context, key string, callback func() error) error
- func (i *InMemoryCache) Rename(oldKey string, newKey string, expiration time.Duration) error
- func (i *InMemoryCache) Set(item *Item) error
- type Item
- type MetricsRegistry
- type Options
- type RedisCompressionType
Constants ¶
View Source
const (
// CLIFlagRedisCompress is a cli flag name to define the redis compression setting for data sent to redis
CLIFlagRedisCompress = "redis-compress"
)
Variables ¶
View Source
var ( ErrCacheMiss = errors.New("cache: key is missing") ErrCacheKeyLocked = errors.New("cache: key is locked") CacheLockedValue = "locked" )
Functions ¶
func AddCacheFlagsToCmd ¶
AddCacheFlagsToCmd adds flags which control caching to the specified command
func CollectMetrics ¶
func CollectMetrics(client *redis.Client, registry MetricsRegistry)
CollectMetrics add transport wrapper that pushes metrics into the specified metrics registry
func NewArgoRedisHook ¶ added in v2.2.0
func NewArgoRedisHook(reconnectCallback func()) *argoRedisHooks
func NewTwoLevelClient ¶
func NewTwoLevelClient(client CacheClient, inMemoryExpiration time.Duration) *twoLevelClient
NewTwoLevelClient creates cache client that proxies requests to given external cache and tries to minimize number of requests to external client by storing cache entries in local in-memory cache.
Types ¶
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
Cache provides strongly types methods to store and retrieve values from shared cache
func NewCache ¶
func NewCache(client CacheClient) *Cache
func (*Cache) GetClient ¶
func (c *Cache) GetClient() CacheClient
func (*Cache) NotifyUpdated ¶
func (*Cache) RenameItem ¶ added in v2.11.0
func (*Cache) SetClient ¶
func (c *Cache) SetClient(client CacheClient)
type CacheActionOpts ¶ added in v2.11.0
type CacheClient ¶
type CacheClient interface { Set(item *Item) error Rename(oldKey string, newKey string, expiration time.Duration) error Get(key string, obj interface{}) error Delete(key string) error OnUpdated(ctx context.Context, key string, callback func() error) error NotifyUpdated(key string) error }
func NewRedisCache ¶
func NewRedisCache(client *redis.Client, expiration time.Duration, compressionType RedisCompressionType) CacheClient
type InMemoryCache ¶
type InMemoryCache struct {
// contains filtered or unexported fields
}
func NewInMemoryCache ¶
func NewInMemoryCache(expiration time.Duration) *InMemoryCache
func (*InMemoryCache) Delete ¶
func (i *InMemoryCache) Delete(key string) error
func (*InMemoryCache) Flush ¶
func (i *InMemoryCache) Flush()
func (*InMemoryCache) Get ¶
func (i *InMemoryCache) Get(key string, obj interface{}) error
func (*InMemoryCache) HasSame ¶
func (i *InMemoryCache) HasSame(key string, obj interface{}) (bool, error)
HasSame returns true if key with the same value already present in cache
func (*InMemoryCache) Items ¶
func (i *InMemoryCache) Items(createNewObject func() interface{}) (map[string]interface{}, error)
Items return a list of items in the cache; requires passing a constructor function so that the items can be decoded from gob format.
func (*InMemoryCache) NotifyUpdated ¶
func (i *InMemoryCache) NotifyUpdated(key string) error
func (*InMemoryCache) Set ¶
func (i *InMemoryCache) Set(item *Item) error
type Item ¶
type Item struct { Key string Object interface{} CacheActionOpts CacheActionOpts }
type MetricsRegistry ¶
type Options ¶ added in v2.11.0
type Options struct { FlagPrefix string OnClientCreated func(client *redis.Client) }
type RedisCompressionType ¶ added in v2.5.0
type RedisCompressionType string
var ( RedisCompressionNone RedisCompressionType = "none" RedisCompressionGZip RedisCompressionType = "gzip" )
func CompressionTypeFromString ¶ added in v2.5.0
func CompressionTypeFromString(s string) (RedisCompressionType, error)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.