Używam klienta Jedis do łączenia się z serwerem Redis. Poniżej przedstawiono ustawienia używam do łączenia z Jedis (przy użyciu Apache Commons basen):Ustawienia połączeń jedis dla wysokiej wydajności i niezawodności
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setTestOnBorrow(true);
poolConfig.setTestOnReturn(true);
poolConfig.setMaxIdle(400);
// Tests whether connections are dead during idle periods
poolConfig.setTestWhileIdle(true);
poolConfig.setMaxTotal(400);
// configuring it for some good max value so that timeout don't occur
poolConfig.setMaxWaitMillis(120000);
tej pory z tych ustawień nie mam napotykając żadnych problemów pod względem niezawodności (zawsze mogę dostać Jedis kiedy tylko chcę), ale widzę pewne opóźnienie w działaniu Jedisa.
Czy ktoś może zaproponować mi więcej optymalizacji pod kątem uzyskania wysokiej wydajności?
Która część jest "wolna" dla Ciebie? Mogą to być objazdy w sieci, które można obniżyć, korzystając ze skryptów pipelining lub lua. Redis jest dość szybki, więc nie powinno tak być. Czy twoja pula jest zdefiniowana z wieloma przykładami jedis? Jeśli zbyt wiele komponentów zadaje proste pytanie o instancję typu jedis, będzie blokować zadania, ponieważ nie ma wystarczających zasobów dla wszystkich. Czy możesz to sprawdzić? – zenbeni