← ClaudeAtlas

redis-cachelisted

Spring Data Redis conventions — caching with @Cacheable, key strategy, TTL/eviction policies, Redisson distributed lock patterns. Auto-loads when editing `**/*Cache*.java` or files using @Cacheable. Covers RedisTemplate config + serialization.
taipt1504/claudehut · ★ 1 · Data & Documents · score 64
Install: claude install-skill taipt1504/claudehut
# Redis Cache ## Quick start (@Cacheable) ```java @Service @RequiredArgsConstructor public class UserService { private final UserRepository repo; @Cacheable(value = "users", key = "#id", unless = "#result == null") public User get(String id) { return repo.findById(id).orElse(null); } @CacheEvict(value = "users", key = "#id") public void delete(String id) { repo.deleteById(id); } @CachePut(value = "users", key = "#user.id") public User update(User user) { return repo.save(user); } } ``` ## Config ```java @Configuration @EnableCaching public class RedisConfig { @Bean public RedisCacheManager cacheManager(RedisConnectionFactory cf, ObjectMapper mapper) { RedisCacheConfiguration defaults = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofMinutes(10)) .disableCachingNullValues() .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer( new GenericJackson2JsonRedisSerializer(mapper) )); Map<String, RedisCacheConfiguration> cacheConfigs = Map.of( "users", defaults.entryTtl(Duration.ofMinutes(30)), "sessions", defaults.entryTtl(Duration.ofHours(24)) ); return RedisCacheManager.builder(cf) .cacheDefaults(defaults)