redis-cachelisted
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)