【发布时间】:2020-09-18 09:32:02
【问题描述】:
我正在使用带有 Redis 的 Spring Boot。Redis 作为 Docker 容器运行
spring.cache.type=redis
spring.redis.host=localhost
spring.redis.port=6379
Redis 是一个内存数据库,如果它根据 key 在 Redis 中找到数据,则从 Redis 中检索到,否则进入实际的 db 调用。
当 Redis 运行时,代码工作正常。但有时出于任何原因,如果 Redis 出现故障,我会收到异常 RedisConnectionException: Unable to connect to localhost:6379
我想让它成为可选的。如果它出现故障,代码应该通过调用实际的 DB 数据(sql 服务存储库)按原样工作。
有没有办法让 Redis 调用成为可选的。
if running, work with Redis,
if down, can to actual DB without exception.
我的代码
@Cacheable(cacheNames = CACHE_USER_DETAILS)
public User getUserDetails(String username) {
//call data from sql serever via repositories.
}
【问题讨论】:
-
您可以捕获异常并继续前进。
-
如果配置reddis为数据源,可以尝试使用spring.datasource.continue-on-error=true
-
捕获异常将不起作用。我没有从存储库数据库中获取数据。数据库作为数据源:不,我没有使用 redis 作为数据源。我正在使用@cacheble
标签: java spring spring-boot redis