工程所需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)); } } |