spring-cache - Spring Cache with Redis - 如何在与 Redis 连接失败的情况下优雅地处理甚至跳过缓存

标签 spring-cache spring-data-redis

我在 Spring 应用程序中启用了缓存,并使用 Redis 来达到目的。
但是,每当发生连接失败时,应用程序就会停止工作,而我认为它更好
跳过缓存并继续正常的执行流程。

那么,有没有人知道如何在 Spring 中优雅地做到这一点?

这是我得到的异常(exception)。

Caused by: org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

最佳答案

从 Spring Framework 4.1 开始,有一个 CacheErrorHandler您可以实现以处理此类异常。引用 to the javadoc更多细节。

您可以通过您的 @Configuration 注册它类扩展 CachingConfigurerSupport (见 errorHandler())。

关于spring-cache - Spring Cache with Redis - 如何在与 Redis 连接失败的情况下优雅地处理甚至跳过缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27707857/

相关文章:

java - 如何使用 Spring 缓存管理器与 redis 1.6.2.RELEASE

java - Caused by : java. lang.IllegalArgumentException : CONTAINING (1): [IsContaining, Containing, Contains]不支持redis查询推导-Redis

java - 如何在 Redis 中指定 id 的长度

spring - @Cacheable 标签在 Spring 上的 JUnit 测试期间似乎被忽略

java - 如何在不覆盖默认 spring-cache 的情况下创建辅助 CacheManager

spring-mvc - 如果 redis 连接失败,如何在运行时禁用 Redis 缓存

java - 无法将缓存的 json 数据反序列化为 AsyncResult

java - 用 @Cacheable 注释的方法不会被拦截

java - 共享缓存上的@Cacheable 键?

java - RedisSerializer 处理 java.util.Optional (Spring Data Redis)