Giriş
Şu satırı dahil ederiz
import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;
Bu sınıf Pool<Jedis> arayüzünden kalıtıyor. Dolayısıyla şöyle yapılabilir. Yani JedisPool ve JedisSentinelPool arasında tercih yapılabilir.
Pool<Jedis> jedisPool;GenericObjectPoolConfig<Jedis> poolConfig = new GenericObjectPoolConfig<>();poolConfig.setMaxIdle(...);poolConfig.setMaxTotal(...);String host = ...;int port = ...;String passwd = ...;int connectionTimeout = ...;int db = ...;boolean ssl = ...;boolean sentinelMode = ...;if (sentinelMode) {String sentinelMaster = ...Set<String> sentinels = ...;this.jedisPool = StringUtils.isNotBlank(passwd)? new JedisSentinelPool(sentinelMaster, sentinels, poolConfig, connectionTimeout,
passwd, db): new JedisSentinelPool(sentinelMaster,sentinels, poolConfig, connectionTimeout,
null, db);} else {this.jedisPool = StringUtils.isNotBlank(passwd)? new JedisPool(poolConfig, host, port, connectionTimeout, passwd, db, ssl): new JedisPool(poolConfig, host, port, connectionTimeout, null, db, ssl);}
constructor - host + port
Şöyle yaparız
JedisPool jedisPool;String password = ...;if (password.length() > 0) {jedisPool = new JedisPool(new JedisPoolConfig(), host, port, 2000, password);} else {jedisPool = new JedisPool(host, port);}
constructor - GenericObjectPoolConfig + host + port + timeout
org.apache.commons.pool2.impl.GenericObjectPoolConfig aslında bir apache sınıfı. Bu sınıftan kalıtan JedisPoolConfig kullanılabilir.
Örnek
Şöyle yaparız
@Configurationpublic class RedisCacheConfig {//Redis server host ip/domain name@Value("${redis.host}")private String redisHost;//Redis server port@Value("${redis.port}")private Integer redisPort;//Timeout value in seconds@Value("${redis.timeout}")private Integer redisTimeout;// Maximum Active Connection Count@Value("${redis.maximumActiveConnectionCount}")private Integer redisMaximumActiveConnectionCount;@Beanpublic JedisPool jedisPool() {// Initialize JedisPoolConfig objectJedisPoolConfig poolConfig = new JedisPoolConfig();// Set maximum active connection countpoolConfig.setMaxTotal(redisMaximumActiveConnectionCount);//Initialize JedisPool object using server related properties.//If you are using additional properties like,{ password ,ssl.enabled etc }
//you have to pass those// values into JedisPool constructor.JedisPool jedisPool = new JedisPool(poolConfig, redisHost, redisPort, redisTimeout);return jedisPool;}}
constructor - GenericObjectPoolConfig + host + port + timeout + password
Örnek
Şöyle yaparız. Varsayılan bağlantı sayısı 8'dir.
JedisPool jedisPool = new JedisPool(new JedisPoolConfig(),host,port, 2000, password);try (Jedis jedis = jedisPool.getResource()) {String result = jedis.set("welcome", "world");String value = jedis.get("welcome");}jedisPool.close();
Örnek
Varsayılan bağlantı sayısını artırmak için şöyle yaparız.
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(128);
jedisPool = new JedisPool(poolConfig, host, port, timeout, password);
constructor - GenericObjectPoolConfig + host + port + timeout + password + ssl
Örnek
Şöyle yaparız
GenericObjectPoolConfig<Jedis> jedisPoolConfig = new GenericObjectPoolConfig<>(); String redisHost = ...; int redisPort = ...; int timeout = 5000; String redisPassword = ...; boolean isSSL = true; JedisPool pool = new JedisPool(jedisPoolConfig, redisHost, redisPort, timeout, redisPassword, isSSL);
close metodu
JedisPool jedisPool = ...;...jedisPool.close();
destroy metodu
Örnek
Şöyle yaparız.
JedisPool jedisPool = ...;...jedisPool.destroy();
Şöyle yaparız
try (Jedis jedis = jedisPool.getResource()) {...}
Hiç yorum yok:
Yorum Gönder