Documentation
¶
Index ¶
- type Cache
- type MemoryCache
- func (m *MemoryCache) Close() error
- func (m *MemoryCache) Delete(ctx context.Context, key string) error
- func (m *MemoryCache) DeletePattern(ctx context.Context, pattern string) error
- func (m *MemoryCache) Exists(ctx context.Context, key string) (bool, error)
- func (m *MemoryCache) Get(ctx context.Context, key string) (interface{}, error)
- func (m *MemoryCache) Set(ctx context.Context, key string, value interface{}, ttl time.Duration) error
- type RedisCache
- func (r *RedisCache) Close() error
- func (r *RedisCache) Delete(ctx context.Context, key string) error
- func (r *RedisCache) DeletePattern(ctx context.Context, pattern string) error
- func (r *RedisCache) Exists(ctx context.Context, key string) (bool, error)
- func (r *RedisCache) Get(ctx context.Context, key string) (interface{}, error)
- func (r *RedisCache) Set(ctx context.Context, key string, value interface{}, ttl time.Duration) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface {
Get(ctx context.Context, key string) (interface{}, error)
Set(ctx context.Context, key string, value interface{}, ttl time.Duration) error
Delete(ctx context.Context, key string) error
DeletePattern(ctx context.Context, pattern string) error
Exists(ctx context.Context, key string) (bool, error)
Close() error
}
Cache interface defines caching operations.
Two implementations are provided:
- MemoryCache: Simple in-process LRU cache with global TTL
- RedisCache: Distributed cache with per-item TTL support
Use MemoryCache for development and single-instance deployments. Use RedisCache for horizontal scaling or when per-item TTL is needed.
type MemoryCache ¶
type MemoryCache struct {
// contains filtered or unexported fields
}
MemoryCache implements an in-memory LRU cache. TTL is global, set at construction time via NewMemoryCache. For per-item TTL, use RedisCache instead.
func NewMemoryCache ¶
func NewMemoryCache(size int, ttl time.Duration) *MemoryCache
NewMemoryCache creates a new in-memory cache
func (*MemoryCache) Close ¶
func (m *MemoryCache) Close() error
Close closes the cache (no-op for memory cache)
func (*MemoryCache) Delete ¶
func (m *MemoryCache) Delete(ctx context.Context, key string) error
Delete removes a key from the cache
func (*MemoryCache) DeletePattern ¶
func (m *MemoryCache) DeletePattern(ctx context.Context, pattern string) error
DeletePattern removes all keys matching a pattern
type RedisCache ¶
type RedisCache struct {
// contains filtered or unexported fields
}
RedisCache implements a Redis-backed cache
func NewRedisCache ¶
NewRedisCache creates a new Redis cache
func (*RedisCache) Delete ¶
func (r *RedisCache) Delete(ctx context.Context, key string) error
Delete removes a key from Redis
func (*RedisCache) DeletePattern ¶
func (r *RedisCache) DeletePattern(ctx context.Context, pattern string) error
DeletePattern removes all keys matching a pattern