Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

How to use ConnectionPoolConfig + UnifiedJedis + Transaction

$
0
0

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();        }    }}

Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>