Если сервер redis не работает, вам необходимо реализовать обработчик ошибок кэша, который перенаправляет на исходный метод, который должен был быть вызван, если данные не были кэшированы.Следующий обработчик ошибок должен сделать трюк:
@Component
public class RedisCacheErrorHandler implements CacheErrorHandler {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public void handleCacheGetError(RuntimeException exception, Cache cache, Object key) {
log.info("Unable to get from cache " + cache.getName() + " : " + exception.getMessage());
}
@Override
public void handleCachePutError(RuntimeException exception, Cache cache, Object key, Object value) {
log.info("Unable to put into cache " + cache.getName() + " : " + exception.getMessage());
}
@Override
public void handleCacheEvictError(RuntimeException exception, Cache cache, Object key) {
log.info("Unable to evict from cache " + cache.getName() + " : " + exception.getMessage());
}
@Override
public void handleCacheClearError(RuntimeException exception, Cache cache) {
log.info("Unable to clean cache " + cache.getName() + " : " + exception.getMessage());
}
}