Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,被许多大型门户网站广泛使用。
工程所需jar包下载地址:https://github.com/gwhalin/Memcached-Java-Client/downloads
commons-pool-1.5.6.jar
java_memcached-release_2.6.6.jar
slf4j-api-1.6.1.jar
slf4j-simple-1.6.1.jar
windows下memcached的安装和基本使用我的博客也有介绍。
工程所需jar包下载地址:https://github.com/gwhalin/Memcached-Java-Client/downloads
commons-pool-1.5.6.jar
java_memcached-release_2.6.6.jar
slf4j-api-1.6.1.jar
slf4j-simple-1.6.1.jar
windows下memcached的安装和基本使用我的博客也有介绍。
代码片段(2)[全屏查看所有代码]
1. [代码][Java]代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
package
com.memcached.demo;
import
java.util.Date;
import
java.util.Map;
import
com.danga.MemCached.MemCachedClient;
import
com.danga.MemCached.SockIOPool;
public
class
MemcachedHelper {
private
static
MemCachedClient mcc =
new
MemCachedClient();
static
{
//创建Socket连接池实例
SockIOPool spool = SockIOPool.getInstance();
String[] servers = {
"127.0.0.1:11211"
};
Integer[] weights = {
3
};
//设置服务器信息
spool.setServers(servers);
spool.setWeights(weights);
spool.setFailover(
true
);
//设置初始连接数、最小和最大连接数以及最大处理时间
spool.setInitConn(
5
);
spool.setMinConn(
5
);
spool.setMaxConn(
250
);
spool.setMaxIdle(
1000
*
60
*
60
*
6
);
//设置主线程睡眠时间
spool.setMaintSleep(
30
);
//设置TCP参数、连接超时等
spool.setNagle(
false
);
spool.setSocketTO(
3000
);
spool.setSocketConnectTO(
0
);
spool.setAliveCheck(
true
);
//初始化连接池
spool.initialize();
}
protected
MemcachedHelper(){
}
protected
static
MemcachedHelper instance =
new
MemcachedHelper();
/**
* 为受保护的对象提供一个公共的访问方法
*/
public
static
MemcachedHelper getInstance () {
return
instance;
}
/**
* 插入一条记录到缓存服务器中
* @param key
* @param value
* @return
*/
public
boolean
add(String key,Object value) {
return
mcc.add(key, value);
}
/**
* 插入一条记录到缓存服务器,并设置过期时间,单位为秒
* @param key
* @param value
* @param expiry
* @return
*/
public
boolean
add (String key,Object value,Date expiry) {
return
mcc.add(key, value,expiry);
}
/**
* 根据KEY替换缓存服务器中的数据
* @param key
* @param value
* @return
*/
public
boolean
replace (String key,Object value) {
return
mcc.replace(key, value);
}
public
boolean
replace (String key,Object value,Date expiry) {
return
mcc.replace(key, value, expiry);
}
/**
* 当KEY不存在时将数据添加到缓存服务器中
* 当KEY存在时则替换原来的数据
* @param key
* @param value
* @return
*/
public
boolean
set(String key,Object value){
return
mcc.set(key, value);
}
public
boolean
set(String key,Object value,Date expiry){
return
mcc.set(key, value,expiry);
}
/**
* 根据KEY删除缓存服务器中的数据
* @param key
* @return
*/
public
boolean
delete(String key){
return
mcc.delete(key);
}
/**
* 根据指定的KEY获取数据
*/
public
Object get(String key) {
return
mcc.get(key);
}
/**
* 批量获取多个KEY的数据
* @param keys
* @return
*/
public
Map<String,Object> getMulti(String[] keys){
return
mcc.getMulti(keys);
}
/**
* 判断指定的KEY是否已经存在
* @param key
* @return
*/
public
boolean
keyExists(String key){
return
mcc.keyExists(key);
}
}
|
2. [代码][Java]代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package
com.memcached.demo;
import
java.util.Date;
import
org.junit.Test;
public
class
MemcachedTimeTest {
private
MemcachedHelper install = MemcachedHelper.getInstance();
private
String key =
"YE1000"
;
@Test
public
void
testAdd(){
String value =
"这是一个Demo测试案例!"
;
install.add(key, value,
new
Date(
1000
*
10
));
}
@Test
public
void
testSet(){
String value =
"这是一个Demo测试案例!"
;
install.set(key, value,
new
Date(
1000
*
20
));
}
@Test
public
void
testGet(){
String value = (String)install.get(key);
System.out.println(value);
}
@Test
public
void
testDelete(){
install.delete(key);
}
@Test
public
void
testKeyExists(){
System.out.println(install.keyExists(key));
}
}
|