Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Spring Boot Redis会话实现中捕获Redis连接故障?_Spring_Spring Boot_Session_Redis_Connection - Fatal编程技术网

如何在Spring Boot Redis会话实现中捕获Redis连接故障?

如何在Spring Boot Redis会话实现中捕获Redis连接故障?,spring,spring-boot,session,redis,connection,Spring,Spring Boot,Session,Redis,Connection,我已经在Spring Boot java应用程序上使用LettuceConnectionFactory实现了Redis会话管理。我想不出一种方法来捕获Redis连接失败。是否有方法捕获连接故障 弹簧启动版本:2.2.6 代码: @Configuration @PropertySource("classpath:application.properties") @EnableRedisHttpSession public class HttpSessionConfig extends Abstra

我已经在Spring Boot java应用程序上使用LettuceConnectionFactory实现了Redis会话管理。我想不出一种方法来捕获Redis连接失败。是否有方法捕获连接故障

弹簧启动版本:2.2.6

代码:

@Configuration
@PropertySource("classpath:application.properties")
@EnableRedisHttpSession
public class HttpSessionConfig extends AbstractHttpSessionApplicationInitializer {

    Logger logger = LoggerFactory.getLogger(HttpSessionConfig.class);

    @Value("${spring.redis.host}")
    private String redisHostName;

    @Value("${spring.redis.port}")
    private int redisPort;

    @Value("${spring.redis.password}")
    private String redisPassword;

    private @Value("${spring.redis.custom.command.timeout}")
    Duration redisCommandTimeout;

    private @Value("${spring.redis.timeout}")
    Duration socketTimeout;


    @Bean
    LettuceConnectionFactory lettuceConnectionFactory() {

        final SocketOptions socketOptions = SocketOptions.builder().connectTimeout(socketTimeout).build();

        final ClientOptions clientOptions = ClientOptions.builder()
                .socketOptions(socketOptions)
                .build();

        LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
                .commandTimeout(redisCommandTimeout)
                .clientOptions(clientOptions)
                .readFrom(ReadFrom.SLAVE_PREFERRED)
                .build();
        RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration(redisHostName,
                redisPort);

        final LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(serverConfig,
                clientConfig);
        return lettuceConnectionFactory;
    }


    @Bean
    public RedisTemplate<Object, Object> sessionRedisTemplate() {
        final RedisTemplate<Object, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(lettuceConnectionFactory());
        return template;
    }     

    @Bean
    public ConfigureRedisAction configureRedisAction() {
        return ConfigureRedisAction.NO_OP;
    }
}
@配置
@PropertySource(“类路径:application.properties”)
@启用RedistpSession
公共类HttpSessionConfig扩展了AbstractHttpSessionApplicationInitializer{
Logger Logger=LoggerFactory.getLogger(HttpSessionConfig.class);
@值(${spring.redis.host}”)
私有字符串主机名;
@值(${spring.redis.port}”)
私人int再报告;
@值(${spring.redis.password}”)
私有字符串密码;
private@Value(${spring.redis.custom.command.timeout})
超时持续时间;
private@Value(${spring.redis.timeout})
持续时间;
@豆子
LettuceConnectionFactory LettuceConnectionFactory(){
final-SocketOptions-SocketOptions=SocketOptions.builder().connectTimeout(socketTimeout.build();
最终ClientOptions ClientOptions=ClientOptions.builder()
.插座选项(插座选项)
.build();
LettuceClientConfiguration clientConfig=LettuceClientConfiguration.builder()
.commandTimeout(redisCommandTimeout)
.clientOptions(clientOptions)
.readFrom(首选readFrom.SLAVE_)
.build();
RedisStandaloneConfiguration serverConfig=新的RedisStandaloneConfiguration(redisHostName,
再报告);
最终LettuceConnectionFactory LettuceConnectionFactory=新的LettuceConnectionFactory(服务器配置,
客户端配置);
退耕还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林还林;
}
@豆子
公共RedisTemplate sessionRedisTemplate(){
最终RedisTemplate=新RedisTemplate();
setConnectionFactory(lettuceConnectionFactory());
返回模板;
}     
@豆子
公共配置RedisAction ConfigureRedisAction(){
返回ConfigureRedisAction.NO\u OP;
}
}