I am using ConnectionPoolConfig + UnifiedJedis + Transaction. I am new for the redis using redis.clients 4.4.0-rc1, i have two questions
1 - can i use ConnectionPoolConfig in this way?2 - Whats is the use of poolConfig.setMaxTotal()? in the code i have set poolConfig.setMaxTotal(250) but when i had increased load(set i < 500 in run method for loop) then i seen it uses 500+ clients (seen in RedisInsight UI)
import java.time.Duration;import java.util.Date;import redis.clients.jedis.ConnectionPoolConfig;import redis.clients.jedis.JedisPooled;import redis.clients.jedis.Transaction;import redis.clients.jedis.UnifiedJedis;class MultithreadingDemo extends Thread { private static final ConnectionPoolConfig connectionPoolConfig=buildConfigPool(); private static final UnifiedJedis jedis = new JedisPooled(connectionPoolConfig, "localhost", 6379); private static ConnectionPoolConfig buildConfigPool() { final ConnectionPoolConfig poolConfig ; poolConfig = new ConnectionPoolConfig(); poolConfig.setMaxTotal(250); poolConfig.setMaxIdle(50); poolConfig.setMinIdle(50); poolConfig.setTestOnBorrow(true); poolConfig.setTestOnReturn(true); poolConfig.setTestWhileIdle(true); poolConfig.setMinEvictableIdleTime(Duration.ofSeconds(60)); poolConfig.setTimeBetweenEvictionRuns(Duration.ofSeconds(30)); poolConfig.setNumTestsPerEvictionRun(3); poolConfig.setBlockWhenExhausted(true); return poolConfig; } public void run() { System.out.println(" Start - " + Thread.currentThread().getId() +" - " + new Date()); for (int i = 0; i < 10; i++) { Transaction tr = jedis.multi(); tr.jsonSetLegacy(System.currentTimeMillis() +" - " + Thread.currentThread().getId() +"ABC","Value"); tr.exec(); } System.out.println(" End - " + Thread.currentThread().getId() +" - " + new Date()); }}// Main Classpublic class Multithread { public static void main(String[] args) { int n = 5; // Number of threads for (int i = 0; i < n; i++) { MultithreadingDemo object = new MultithreadingDemo(); object.start(); } }}