package cache import ( "context" "time" "github.com/redis/go-redis/v9" ) type Cache interface { Encode(a any) ([]byte, error) Set(ctx context.Context, key string, value interface{}, expiration time.Duration) error Del(ctx context.Context, keys ...string) error Get(ctx context.Context, key string) (string, error) GetBytes(ctx context.Context, key string) ([]byte, error) Scan(ctx context.Context, cursor uint64, match string, count int64) *redis.ScanCmd Keys(ctx context.Context, pattern string) ([]string, error) ListKeys(ctx context.Context, pattern string, pageID int, pageSize int) ([]string, int, error) }