| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package cache
- import (
- "context"
- "time"
- )
- // Cache interface
- type Cache interface {
- Get(key string) interface{}
- Set(key string, val interface{}, timeout time.Duration) error
- IsExist(key string) bool
- Delete(key string) error
- }
- // ContextCache interface
- type ContextCache interface {
- Cache
- GetContext(ctx context.Context, key string) interface{}
- SetContext(ctx context.Context, key string, val interface{}, timeout time.Duration) error
- IsExistContext(ctx context.Context, key string) bool
- DeleteContext(ctx context.Context, key string) error
- }
- // GetContext get value from cache
- func GetContext(ctx context.Context, cache Cache, key string) interface{} {
- if cache, ok := cache.(ContextCache); ok {
- return cache.GetContext(ctx, key)
- }
- return cache.Get(key)
- }
- // SetContext set value to cache
- func SetContext(ctx context.Context, cache Cache, key string, val interface{}, timeout time.Duration) error {
- if cache, ok := cache.(ContextCache); ok {
- return cache.SetContext(ctx, key, val, timeout)
- }
- return cache.Set(key, val, timeout)
- }
- // IsExistContext check value exists in cache.
- func IsExistContext(ctx context.Context, cache Cache, key string) bool {
- if cache, ok := cache.(ContextCache); ok {
- return cache.IsExistContext(ctx, key)
- }
- return cache.IsExist(key)
- }
- // DeleteContext delete value in cache.
- func DeleteContext(ctx context.Context, cache Cache, key string) error {
- if cache, ok := cache.(ContextCache); ok {
- return cache.DeleteContext(ctx, key)
- }
- return cache.Delete(key)
- }
|