Jedisスレッドプールのコード【回転】
メモ:(ネイティブi 5のテストデータ:redisスレッド実行時間:21187 ms)
01
public
class
Demo2 {
02
03
private
static
JedisPool pool;
04
05
static
{
06
JedisPoolConfig config =
new
JedisPoolConfig();
07
config.setMaxActive(
100
);
08
config.setMaxIdle(
20
);
09
config.setMaxWait(
1000
);
10
config.setTestOnBorrow(
true
);
11
12
pool =
new
JedisPool(config,
"localhost"
);
13
}
14
15
public
static
void
main(String[] args) {
16
Demo2 demo =
new
Demo2();
17
demo.test();
18
}
19
20
public
void
test() {
21
initInsert();
22
testThread();
23
}
24
25
private
void
initInsert() {
26
Jedis jedis = pool.getResource();
27
for
(
int
i=
0
; i<
20000
; i++)
28
jedis.set(String.valueOf(i), String.valueOf(i));
29
pool.returnResource(jedis);
30
}
31
32
private
void
testThread() {
33
long
begin = System.currentTimeMillis();
34
35
Thread thread[] =
new
Thread[
60
];
36
for
(
int
i=
0
; i<thread.length; i++) {
37
thread[i] =
new
MyThread();
38
thread[i].start();
39
}
40
41
for
(
int
i=
0
; i<thread.length; i++) {
42
try
{
43
thread[i].join();
44
}
catch
(InterruptedException e) {
45
e.printStackTrace();
46
}
47
}
48
49
long
end = System.currentTimeMillis();
50
System.out.println(
" :"
+ (end - begin) +
" ms"
);
51
}
52
53
class
MyThread
extends
Thread {
54
@Override
55
public
void
run() {
56
Jedis jedis = Demo2.pool.getResource();
57
for
(
int
i=
0
; i<
20000
; i++)
58
jedis.get(String.valueOf(i));
59
Demo2.pool.returnResource(jedis);
60
}
61
}
62
}