1、JedisUtil类

2、测试类

3、测试日志(模拟出现竞争情况)

import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; public class JedisUtil {
protected static Logger logger = Logger.getLogger(JedisUtil.class);
// Redis server IP
private static String HOST_LIST = "192.168.0.123";
// Redis port
private static int PORT = 6379;
// auth
private static String PASS = "jiangtao";
private static int MAX_ACTIVE = 10;
private static int MAX_IDLE = 2;
private static boolean TEST_ON_BORROW = false;
private static int MAX_WAIT = 3000;
private static int TIMEOUT = 100000;
private static JedisPool jedisPool = null; /**
* initial Pool
*/
private static synchronized void init_pool() {
if (jedisPool == null) {
try { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_ACTIVE); config.setMaxIdle(MAX_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); jedisPool = new JedisPool(config, HOST_LIST.split(",")[0], PORT, TIMEOUT, PASS); } catch (Exception e) { logger.error("First create JedisPool error : " + e); try { // 如果第一个IP异常,则访问第二个IP JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(MAX_ACTIVE); config.setMaxIdle(MAX_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); jedisPool = new JedisPool(config, HOST_LIST.split(",")[1], PORT, TIMEOUT, PASS); } catch (Exception e2) { logger.error("Second create JedisPool error : " + e2); } }
} } public synchronized static Jedis getJedis() {
if (jedisPool == null) {
init_pool();
}
Jedis jedis = null;
try {
if (jedisPool != null) {
jedis = jedisPool.getResource();
}
} catch (Exception e) {
System.out.println("no remain redis from pool");
}
return jedis;
} /**
* 释放jedis资源
*
*
*
* @param jedis
*/ public static void returnResource(final Jedis jedis) {
if (jedis != null && jedisPool != null) {
jedis.close();
} } }
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; import redis.clients.jedis.Jedis; public class Test { public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
Test_Thread t = new Test_Thread(i);
t.start();
}
} } class Test_Thread extends Thread {
int i = 0; public Test_Thread(int i) {
this.i = i;
} public void run() { Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format(date);
Jedis obj = JedisUtil.getJedis();
String value = null;
if (obj != null) {
obj.set("test",time);
try {
sleep(10000);
} catch (InterruptedException e) {
System.out.println("sleep error");
}
value = obj.get("test");
Date date2 = new Date();
String time2 = format.format(date2);
System.out.println("【输出>>>>】test:" + value + " 第:" + i + "个线程" + "当前时间:" + time2);
}
JedisUtil.returnResource(obj); // JedisUtil.setString("test", time); } }
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:13个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:999个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:995个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:991个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:987个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:983个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:979个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:975个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:971个线程当前时间:2018-07-22 10:38:29
【输出>>>>】test:2018-07-22 10:38:19 第:967个线程当前时间:2018-07-22 10:38:29
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:951个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:947个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:952个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:943个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:997个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:993个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:989个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:985个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:981个线程当前时间:2018-07-22 10:38:39
【输出>>>>】test:2018-07-22 10:38:19 第:977个线程当前时间:2018-07-22 10:38:39
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:998个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:994个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:990个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:986个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:982个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:978个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:974个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:970个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:996个线程当前时间:2018-07-22 10:38:49
【输出>>>>】test:2018-07-22 10:38:19 第:992个线程当前时间:2018-07-22 10:38:49
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:976个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:972个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:968个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:966个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:964个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:960个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:962个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:961个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:956个线程当前时间:2018-07-22 10:38:59
【输出>>>>】test:2018-07-22 10:38:19 第:958个线程当前时间:2018-07-22 10:38:59
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:948个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:953个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:925个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:938个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:937个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:935个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:936个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:950个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:934个线程当前时间:2018-07-22 10:39:09
【输出>>>>】test:2018-07-22 10:38:19 第:933个线程当前时间:2018-07-22 10:39:09
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:945个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:923个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:944个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:919个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:940个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:942个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:932个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:941个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:930个线程当前时间:2018-07-22 10:39:19
【输出>>>>】test:2018-07-22 10:38:19 第:929个线程当前时间:2018-07-22 10:39:19
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:917个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:918个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:898个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:913个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:895个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:915个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:893个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:926个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:855个线程当前时间:2018-07-22 10:39:29
【输出>>>>】test:2018-07-22 10:38:19 第:924个线程当前时间:2018-07-22 10:39:29
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:908个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:882个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:775个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:914个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:901个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:916个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:877个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:837个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:897个线程当前时间:2018-07-22 10:39:39
【输出>>>>】test:2018-07-22 10:38:19 第:912个线程当前时间:2018-07-22 10:39:39
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:907个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:889个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:910个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:885个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:909个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:884个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:886个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:883个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:881个线程当前时间:2018-07-22 10:39:49
【输出>>>>】test:2018-07-22 10:38:19 第:880个线程当前时间:2018-07-22 10:39:49
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:906个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:875个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:902个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:863个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:905个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:859个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:800个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:851个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:903个线程当前时间:2018-07-22 10:39:59
【输出>>>>】test:2018-07-22 10:38:19 第:904个线程当前时间:2018-07-22 10:39:59
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:845个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:894个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:809个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:838个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:896个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:796个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:899个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:874个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:872个线程当前时间:2018-07-22 10:40:10
【输出>>>>】test:2018-07-22 10:38:19 第:873个线程当前时间:2018-07-22 10:40:10
no remain redis from pool
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:821个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:891个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:782个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:826个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:825个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:824个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:829个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:816个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:890个线程当前时间:2018-07-22 10:40:20
【输出>>>>】test:2018-07-22 10:38:19 第:765个线程当前时间:2018-07-22 10:40:23
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:818个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:887个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:843个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:819个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:878个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:803个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:811个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:807个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:876个线程当前时间:2018-07-22 10:40:30
【输出>>>>】test:2018-07-22 10:38:19 第:795个线程当前时间:2018-07-22 10:40:33
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:791个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:779个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:835个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:771个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:814个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:810个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:839个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:774个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:763个线程当前时间:2018-07-22 10:40:40
【输出>>>>】test:2018-07-22 10:38:19 第:759个线程当前时间:2018-07-22 10:40:43
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:856个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:854个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:857个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:755个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:862个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:861个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:864个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:858个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:860个线程当前时间:2018-07-22 10:40:50
【输出>>>>】test:2018-07-22 10:38:19 第:853个线程当前时间:2018-07-22 10:40:53
no remain redis from pool
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:848个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:850个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:806个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:743个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:846个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:844个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:842个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:841个线程当前时间:2018-07-22 10:41:00
【输出>>>>】test:2018-07-22 10:38:19 第:840个线程当前时间:2018-07-22 10:41:00
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:712个线程当前时间:2018-07-22 10:41:05
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:727个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:704个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:725个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:834个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:798个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:726个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:801个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:722个线程当前时间:2018-07-22 10:41:10
【输出>>>>】test:2018-07-22 10:38:19 第:833个线程当前时间:2018-07-22 10:41:10
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:699个线程当前时间:2018-07-22 10:41:15
no remain redis from pool
【输出>>>>】test:2018-07-22 10:38:19 第:797个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:679个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:832个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:667个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:817个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:830个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:786个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:828个线程当前时间:2018-07-22 10:41:20
【输出>>>>】test:2018-07-22 10:38:19 第:706个线程当前时间:2018-07-22 10:41:20

Redis连接池-Java代码的更多相关文章

  1. Java Redis 连接池 Jedis 工具类

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.Jedis; import re ...

  2. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  3. Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池

    如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...

  4. 这个 Redis 连接池的新监控方式针不戳~我再加一点佐料

    Lettuce 是一个 Redis 连接池,和 Jedis 不一样的是,Lettuce 是主要基于 Netty 以及 ProjectReactor 实现的异步连接池.由于基于 ProjectReact ...

  5. 三:Redis连接池、JedisPool详解、Redisi分布式

    单机模式: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; ...

  6. redis连接池 jedis-2.9.0.jar+commons-pool2-2.4.2.jar

    java使用Redis连接池  jar包为 jedis-2.9.0.jar+commons-pool2-2.4.2.jar jar下载地址 package com.test; import redis ...

  7. Go语言之从0到1实现一个简单的Redis连接池

    Go语言之从0到1实现一个简单的Redis连接池 前言 最近学习了一些Go语言开发相关内容,但是苦于手头没有可以练手的项目,学的时候理解不清楚,学过容易忘. 结合之前组内分享时学到的Redis相关知识 ...

  8. golang开发:类库篇(二) Redis连接池的使用

    为什么要使用连接池 一个数据库服务器只拥有有限的连接资源,一旦所有的连接资源都在使用,那么其它需要连接的资源就只能等待释放连接资源.所以,在连接资源有限的情况下,提高单位时间的连接的使用效率,缩短连接 ...

  9. Swoole Redis 连接池的实现

    概述 这是关于 Swoole 入门学习的第九篇文章:Swoole Redis 连接池的实现. 第八篇:Swoole MySQL 连接池的实现 第七篇:Swoole RPC 的实现 第六篇:Swoole ...

随机推荐

  1. unity之中级工程师

    主要是实际操作. Destroy(游戏对象):会真正销毁游戏对象. 动态链接库 热更新:用户不需要更新整个项目,只需要更新需要更新的部分,使用AssetBundle.PC,Android可以使用逻辑热 ...

  2. Leetcode之深度优先搜索(DFS)专题-473. 火柴拼正方形(Matchsticks to Square)

    Leetcode之深度优先搜索(DFS)专题-473. 火柴拼正方形(Matchsticks to Square) 深度优先搜索的解题详细介绍,点击 还记得童话<卖火柴的小女孩>吗?现在, ...

  3. Node.js安装详细步骤教程(Windows版)

    什么是Node.js? 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境: Node.js使用 ...

  4. nginx有哪些作用

    Nginx应该是现在最火的web和反向代理服务器,没有之一.她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现. 那除了负载均衡,她还有什么其他的用途呢,下面 ...

  5. ElasticSearch专栏

    1.es的分布式架构原理(es是如何实现分布式)? elasticsearch设计的理念就是分布式搜索引擎,底层其实还是基于lucene的.核心思想就是在多台机器上启动多个es进程实例,组成了一个es ...

  6. E-Find the median_2019牛客暑期多校训练营(第七场)

    题意 N次操作,每次塞入区间\([L,R]\)的每个数,并输出此时的中位数. 题解 如果题目不是每次塞入一整个区间,而是只塞入一个数,可以简单的建权值线段树查询区间第K大,由于每次都是查询整个区间就不 ...

  7. CodeForces Round #499 Div2

    A: Stages 题意: 给你n个字符, 现在需要从中选取m个字符,每个字符的花费为在字母表的第几位,并且如果选了某个字符, 那么下一个选择的字符必须要在字母表的2位之后, 假如选了e 那么 不能选 ...

  8. 用户上传gif动图分解成多张帧图片,并合并生成新gif图片

    背景 为什么要制作这么一款工具 首先公司最近在做一款表情包的产品,需要将文字生成到gif图片中,并可以控制文字显示的位置,并将不同的文字显示在不同的图片上 制作成网页端工具,随时随地,方便使用 探索 ...

  9. 【Offer】[68] 【树中两个结点的最低公共祖先】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两个树结点,求它们的最低公共祖先. [牛客网刷题地址]无 思路分析 该题首先要确定是否为二叉树,还要确定是否为二叉搜索树,是否有父指 ...

  10. 【LeetCode】406-根据身高重建队列

    title: 406-根据身高重建队列 date: 2019-04-15 21:13:06 categories: LeetCode tags: Java容器 比较器 贪心思想 题目描述 假设有打乱顺 ...