可以使 Redis 服务器 return NULL 或 False 而不是 JedisConnectionException 吗?

Can Make Redis server return NULL or False instead of JedisConnectionException?

我们正在开发一个使用Redis服务器作为缓存服务器的应用程序。
所以我们做的是当客户端请求API它首先去Redis获取数据如果没有数据它returns null所以第二步去MYSQL数据库获取数据, 但是当我们失去 Redis 连接时的问题是 returns JedisConnectionException。 如果没有连接,我们可以在配置中将此异常处理为 return null 而不是异常吗?

    @Bean
    JedisConnectionFactory jedisConnectionFactory() {
        return new JedisConnectionFactory();
    }

    @Bean
    RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(jedisConnectionFactory());
        return template;
    }

    @Bean
    HashOperations hashOperations() {
        return redisTemplate().opsForHash();
    }
    @Autowired
    private RedisTemplate<String,Object> redisTemplate;
    @Autowired
    private HashOperations hashOperations;


    public void save(User user) {
        hashOperations.put("USER",user.getId(),user);
    }

    public List<User> getAll() {
        Collection users = hashOperations.entries("USER").values();
        if(CollectionUtils.isEmpty(users)){
            // get data from data base
        }
        return (List<User>) users;
    }

也许使用 try 块?

try {
    // your Redis operations
} catch (JedisConnectionException jce) {
    return null;
}
private static boolean isConnected() {
        try {
            // get any fake key to test connection  
            ApplicationContextConfig.getBean(HashOperations.class).get("TEST", 1); 
            return true;
        } catch (Exception ex) {
            return false;
        }
    }

请注意,异常可能会 RedisConnectionFailureExceptionJedisConnectionException 所以我做到了 Exception.
此方法在任何 Redis 操作之前调用,以首先测试连接性。