public abstract class ConnectionPoolSupport extends Object
GenericObjectPool
and SoftReferenceObjectPool
. Connection pool creation requires
a Supplier
that creates Redis connections. The pool can allocate either wrapped or direct connections.
StatefulConnection.close()
.GenericObjectPool.returnObject(Object)
Lettuce connections are designed to be thread-safe so one connection can be shared amongst multiple threads and lettuce
connections auto-reconnect
by default. Connection pooling with lettuce might be
required when you're invoking Redis operations in multiple threads and you use
BLPOP
.BLPOP
.command batching
.// application initialization RedisClusterClient clusterClient = RedisClusterClient.create(RedisURI.create(host, port)); GenericObjectPool<StatefulRedisClusterConnection<String, String>> pool = ConnectionPoolSupport.createGenericObjectPool( () -> clusterClient.connect(), new GenericObjectPoolConfig()); // executing work try (StatefulRedisClusterConnection<String, String> connection = pool.borrowObject()) { // perform some work } // terminating pool.close(); clusterClient.shutdown();
Modifier and Type | Method and Description |
---|---|
static <T extends StatefulConnection<?,?>> |
createGenericObjectPool(Supplier<T> connectionSupplier,
GenericObjectPoolConfig config)
Creates a new
GenericObjectPool using the Supplier . |
static <T extends StatefulConnection<?,?>> |
createGenericObjectPool(Supplier<T> connectionSupplier,
GenericObjectPoolConfig config,
boolean wrapConnections)
Creates a new
GenericObjectPool using the Supplier . |
static <T extends StatefulConnection<?,?>> |
createSoftReferenceObjectPool(Supplier<T> connectionSupplier)
Creates a new
SoftReferenceObjectPool using the Supplier . |
static <T extends StatefulConnection<?,?>> |
createSoftReferenceObjectPool(Supplier<T> connectionSupplier,
boolean wrapConnections)
Creates a new
SoftReferenceObjectPool using the Supplier . |
public static <T extends StatefulConnection<?,?>> GenericObjectPool<T> createGenericObjectPool(Supplier<T> connectionSupplier, GenericObjectPoolConfig config)
GenericObjectPool
using the Supplier
. Allocated instances are wrapped and must not be
returned with ObjectPool.returnObject(Object)
.T
- connection type.connectionSupplier
- must not be null.config
- must not be null.public static <T extends StatefulConnection<?,?>> GenericObjectPool<T> createGenericObjectPool(Supplier<T> connectionSupplier, GenericObjectPoolConfig config, boolean wrapConnections)
GenericObjectPool
using the Supplier
.T
- connection type.connectionSupplier
- must not be null.config
- must not be null.wrapConnections
- false to return direct connections that need to be returned to the pool using
ObjectPool.returnObject(Object)
. true to return wrapped connection that are returned to the
pool when invoking StatefulConnection.close()
.public static <T extends StatefulConnection<?,?>> SoftReferenceObjectPool<T> createSoftReferenceObjectPool(Supplier<T> connectionSupplier)
SoftReferenceObjectPool
using the Supplier
. Allocated instances are wrapped and must not be
returned with ObjectPool.returnObject(Object)
.T
- connection type.connectionSupplier
- must not be null.public static <T extends StatefulConnection<?,?>> SoftReferenceObjectPool<T> createSoftReferenceObjectPool(Supplier<T> connectionSupplier, boolean wrapConnections)
SoftReferenceObjectPool
using the Supplier
.T
- connection type.connectionSupplier
- must not be null.wrapConnections
- false to return direct connections that need to be returned to the pool using
ObjectPool.returnObject(Object)
. true to return wrapped connection that are returned to the
pool when invoking StatefulConnection.close()
.Copyright © 2017 lettuce.io. All rights reserved.