JedisPool的配置参数很大程度上依赖于实际应用需求、软硬件能力。以前没用过commons-pool2,JedisPool的配置参数大部分是由JedisPoolConfig的对应项来赋值的。
JedisPoolConfig参数
maxActive:控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;如果赋值为-1,则表示 不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态就成exhausted了,在JedisPoolConfig
maxIdle:控制一个pool最多有多少个状态为idle的jedis实例;
whenExhaustedAction:表示当pool中的jedis实例都被allocated完时,pool要采取的操作;默认有三种 WHEN_EXHAUSTED_FAIL(表示无jedis实例时,直接抛出NoSuchElementException)、 WHEN_EXHAUSTED_BLOCK(则表示阻塞住,或者达到maxWait时抛出JedisConnectionException)、 WHEN_EXHAUSTED_GROW(则表示新建一个jedis实例,也就说设置的maxActive无用);
maxWait:表示当borrow一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
testOnBorrow:在borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的;
testOnReturn:在return给pool时,是否提前进行validate操作;
testWhileIdle:如果为true,表示有一个idle object evitor线程对idle object进行扫描,如果validate失败,此object会被从pool中drop掉;这一项只有在 timeBetweenEvictionRunsMillis大于0时才有意义;
timeBetweenEvictionRunsMillis:表示idle object evitor两次扫描之间要sleep的毫秒数;
numTestsPerEvictionRun:表示idle object evitor每次扫描的最多的对象数;
minEvictableIdleTimeMillis:表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义;
softMinEvictableIdleTimeMillis:在minEvictableIdleTimeMillis基础上,加入了至少 minIdle个对象已经在pool里面了。如果为-1,evicted不会根据idle time驱逐任何对象。如果minEvictableIdleTimeMillis>0,则此项设置无意义,且只有在 timeBetweenEvictionRunsMillis大于0时才有意义;
lifo:borrowObject返回对象时,是采用DEFAULT_LIFO(last in first out,即类似cache的最频繁使用队列),如果为False,则表示FIFO队列;
其中JedisPoolConfig对一些参数的默认设置如下:
testWhileIdle=true
minEvictableIdleTimeMills=60000
timeBetweenEvictionRunsMillis=30000
numTestsPerEvictionRun=-1
相关推荐
在这个例子中,我们首先配置了JedisPoolConfig,然后创建了JedisPool实例。在main方法中,我们从池中获取一个Jedis实例,执行Redis操作,完成后将其归还到池中。 总的来说,"jedis-2.1.0.jar+commons-pool-1.6.jar...
配置JedisPool主要涉及以下几个关键参数: 1. **Host**: Redis服务器的IP地址或主机名,如 "localhost"。 2. **Port**: Redis服务器的端口号,默认为6379。 3. **MaxTotal**: 连接池允许的最大连接数,超出此限制后...
具体实现上,开发者需要配置一个JedisPoolConfig对象,设置池的大小、超时时间等参数,然后创建JedisPool实例。之后,每当需要与Redis通信时,可以从池中借用一个Jedis实例,使用完毕后再归还到池中。 以下是一个...
JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379); ``` 4. 从连接池获取Jedis实例进行操作: ```java Jedis jedis = jedisPool.getResource(); try { jedis.set("key", "value"); ...
// 配置连接池参数... pool = new JedisPool(config, host, port); } public void set(String key, String value) { try (Jedis jedis = pool.getResource()) { jedis.set(key, value); } } // 其他Redis...
在实际应用中,你需要配置JedisPool的参数,例如最大活动对象数、最大空闲对象数、超时时间等,以适应不同的负载和资源限制。正确配置这些参数对于确保系统的稳定性和性能至关重要。 **标签 "jedis-3.2.0.jar ...
// 设置配置参数... JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379); ``` 3. **从池中获取Jedis实例**:每次需要使用Jedis时,从池中借用一个。 ```java Jedis jedis = jedisPool.get...
在配置JedisPool时,了解其参数的意义至关重要,以确保正确地调整和优化连接池的行为。以下是对JedisPool配置参数的详细解释: 1. **maxActive**: 这个参数定义了连接池中允许的最大活动连接数。如果设置为-1,表示...
JedisPool pool = new JedisPool(config, "localhost", 6379); try (Jedis jedis = pool.getResource()) { jedis.set("key", "value"); System.out.println("Value: " + jedis.get("key")); Map, String> ...
开发者可以创建一个JedisPool配置对象,设置最大连接数、空闲连接数、超时时间等参数,然后使用`JedisPool`类的`getConnection()`方法获取连接。使用完毕后,应将连接返回到池中,以便其他线程复用。通过这种方式,...
6. **关闭连接**: 当不再需要连接时,记得关闭Jedis实例和JedisPool。 **最佳实践** - 定义合理的连接池配置,如最大连接数、最大空闲连接数、超时时间等,以适应应用的负载需求。 - 使用连接池管理连接,避免资源...
pool = new JedisPool(config, "localhost", 6379); } public static void main(String[] args) { try (Jedis jedis = pool.getResource()) { // 使用Jedis实例执行Redis操作 jedis.set("key", "value"); ...
1. **配置连接池**:首先,需要配置JedisPoolConfig,设置最大连接数、最小连接数、超时时间等参数,以适应应用的需求和服务器的负载。 2. **初始化连接池**:通过`new JedisPool(config, host, port)`创建Jedis...
在这个例子中,我们创建了一个JedisPool实例,设置了连接池的配置参数,并使用try-with-resources语句自动管理连接的生命周期。这只是一个基础示例,实际应用中可能需要根据具体需求调整配置,比如设置密码、端口、...
使用Jedis时,可以通过连接池来管理连接,例如使用`GenericObjectPoolConfig`配置连接池参数,如最大活动连接数、最大空闲连接数、最大等待时间等。然后创建`JedisPool`实例,指定Redis服务器地址、端口、密码等...
6. 关闭`JedisPool`:当不再需要使用`Jedis`时,关闭整个池,释放所有资源。 这样的设计提高了Jedis客户端的性能和并发能力,减少了系统资源的浪费。同时,`Jedis`还提供了连接池的监控和健康检查功能,以便在出现...
- **连接池管理**:Jedis提供连接池功能,通过`JedisPool`和`JedisPoolConfig`类,可以配置和管理多个Redis连接,有效控制资源并提高性能。 - **pipeline**:Jedis支持管道模式,允许一次性发送多个命令,减少网络...
// 配置连接池参数,例如最大连接数、超时时间等 config.setMaxTotal(100); config.setMaxIdle(50); config.setMinIdle(20); config.setTestOnBorrow(true); // 根据你的Redis服务器设置替换以下IP和端口 ...
1. **连接管理**:Jedis提供了连接池(Connection Pool)功能,通过`JedisPool`类实现,可以有效地管理和复用Redis连接,避免频繁创建和关闭连接带来的开销。使用`JedisPoolConfig`配置连接池参数,如最大空闲连接数...
2. **创建JedisPool配置**:创建一个`JedisPoolConfig`实例,配置连接池的参数,如最大连接数、最大空闲连接数、超时时间等。 3. **初始化JedisPool**:使用配置创建`JedisPool`对象,提供Redis服务器的IP地址和...