Mieliśmy ten sam problem z RxJava, aplikacja działała dobrze, ale po pewnym czasie nie można było już pobierać połączeń z puli. Po wielu dniach debugowania w końcu zorientowaliśmy się, co spowodowało problem:
redisTemplate.setEnableTransactionSupport(true)
w jakiś sposób spowodowało, że spring-data-redis nie zwalniało połączeń. Potrzebowaliśmy obsługi transakcji dla MULTI / EXEC, ale ostatecznie zmieniliśmy implementację, aby pozbyć się tego problemu.
Nadal nie wiemy, czy jest to błąd, czy niewłaściwe użycie z naszej strony.