그런 식으로는 Redis가 작동하지 않습니다. 사실, 원격 서비스는 애플리케이션이 다운되었다고 애플리케이션에 알리지 않습니다. 일반적으로 반대 방향입니다. 소비하는 서비스에 다소 복잡한 클라이언트를 사용하여 액세스하는 경우 클라이언트의 기능을 이용할 수 있습니다.
I/O를 실행하거나 스레드를 모니터링하는 비동기 클라이언트가 여기에서 도움이 될 수 있습니다. 더 구체적으로, 그것은 당신이 Spring Boot와 Redis에서 사용하고있는 클라이언트에 달려 있습니다. Jedis은 요청에 따라 반응하는 일반 클라이언트입니다. Lettuce는 특정 연결 이벤트에 호출되는 RedisConnectionStateListener을 등록 할 수 있습니다와 같은 연결로/해제 :
RedisClient redisClient = …;
redisClient.addListener(new RedisConnectionStateListener() {
@Override
public void onRedisConnected(RedisChannelHandler<?, ?> redisChannelHandler) {
}
@Override
public void onRedisDisconnected(RedisChannelHandler<?, ?> redisChannelHandler) {
}
@Override
public void onRedisExceptionCaught(RedisChannelHandler<?, ?> redisChannelHandler, Throwable throwable) {
}
});
는 개인 필드로 LettuceConnectionFactory
에서 RedisClient
조금 까다로운 일이 될 수도 있습니다 검색, 봄 데이터 레디 스를 사용
. 따라서 반사가 필요합니다.