What problem does it solve? In a DDD hexagonal Spring Boot codebase, Redis usage often leaks technical details (RedisTemplate, key strings, TTLs) into domain and application layers, causing tight coupling, key cardinality explosions, missing TTLs, and cache failures crashing APIs. This Skill enforces a consistent set of rules for hiding Redis behind domain ports so caches remain swappable and failures stay contained. ## Core Features & Use Cases - Port-based cache design: Defines how to create ...Cache ports for derived caches and ...Repository ports when Redis is the source of truth, with cache keys modeled as value objects. - Adapter implementation rules: Specifies key namespacing (<context>:<purpose>:), TTL selection based on source data refresh cycles, mandatory expire after Hash putAll, and failure-absorption policies. - Consistency and invalidation: Covers evictAll implementation via key enumeration or cursor-based SCAN (never KEYS), invalidation ownership in use cases/batch cleaners, and key versioning when score formulas change. - Use Case: When adding a new derived score cache for a region recommendation feature, use this Skill to design the cache port, choose a normalized key with bounded cardinality, set the TTL, and wire invalidation into the batch job that refreshes the source data. ## Quick Start Use the redis-conventions skill to design a new score cache port and its Redis adapter for the dwelling context, including key naming, TTL, and eviction.