Většinou není problém s připojením k redis databázi. Ani když používáte docker image a contejner s redisem zastavíte. Po jeho spuštění se aplikace zase korektně připojí do redis databáze. Měl jsem ale problém v případě kubernetu, kdy po znovu nasazení a spuštění docker kontejneru s redisem se aplikace nemohla sama připojit. Řešením bylo udělat health actuator a v případě, že je down, aplikaci restartovat. Jako klienta používám redisson.
import org.redisson.api.RedissonClient import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.actuate.health.Health import org.springframework.boot.actuate.health.ReactiveHealthIndicator import org.springframework.stereotype.Component import reactor.core.publisher.Mono @Component class RedisHealthChecker : ReactiveHealthIndicator { private val log = LoggerFactory.getLogger(RedisHealthChecker::class.java) @Autowired lateinit var redissonClient: RedissonClient override fun health(): Mono{ return try { val bucket = redissonClient.getBucket ("healthBucket") bucket.set("Ok") Mono.just(Health.Builder().up().build()) } catch (e: Exception) { log.error("Error in redis connection", e) Mono.just(Health.Builder().down().build()) } } }