Java应用程序如何使用memcached

来源:互联网 发布:幼儿园手指算法 编辑:程序博客网 时间:2024/06/08 11:04
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的安装和基本使用我的博客也有介绍。
标签: Memcached-Java-Client

代码片段(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 {
 
    privatestatic 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();
    }  
     
    protectedMemcachedHelper(){
    }
     
    protectedstatic MemcachedHelper instance =new MemcachedHelper();
     
    /**
     * 为受保护的对象提供一个公共的访问方法
     */
    publicstatic MemcachedHelper getInstance () {
       returninstance;
    }
     
    /**
     * 插入一条记录到缓存服务器中
     * @param key
     * @param value
     * @return
     */
    publicboolean add(String key,Object value) {
       returnmcc.add(key, value);
    }
    /**
     * 插入一条记录到缓存服务器,并设置过期时间,单位为秒
     * @param key
     * @param value
     * @param expiry
     * @return
     */
    publicboolean add (String key,Object value,Date expiry) {
       returnmcc.add(key, value,expiry);
    }
    /**
     * 根据KEY替换缓存服务器中的数据
     * @param key
     * @param value
     * @return
     */
    publicboolean replace (String key,Object value) {
       returnmcc.replace(key, value);
    }
     
    publicboolean replace (String key,Object value,Date expiry) {  
       returnmcc.replace(key, value, expiry);
    }
    /**
     * 当KEY不存在时将数据添加到缓存服务器中
     * 当KEY存在时则替换原来的数据
     * @param key
     * @param value
     * @return
     */
    publicboolean set(String key,Object value){
        returnmcc.set(key, value);
    }
     
    publicboolean set(String key,Object value,Date expiry){
        returnmcc.set(key, value,expiry);
    }   
   
    /**
     * 根据KEY删除缓存服务器中的数据
     * @param key
     * @return
     */
    publicboolean delete(String key){
        returnmcc.delete(key);
    }  
    /**
     * 根据指定的KEY获取数据
     */
    publicObject get(String key) {
       returnmcc.get(key);
    }
     
    /**
     * 批量获取多个KEY的数据
     * @param keys
     * @return
     */
    publicMap<String,Object> getMulti(String[] keys){
        returnmcc.getMulti(keys);
    }
     
    /**
     * 判断指定的KEY是否已经存在
     * @param key
     * @return
     */
    publicboolean keyExists(String key){
        returnmcc.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 {
     
    privateMemcachedHelper install = MemcachedHelper.getInstance();
     
    privateString key = "YE1000";
     
    @Test
    publicvoid testAdd(){
        String value ="这是一个Demo测试案例!";
        install.add(key, value,new Date(1000* 10));
    }
 
    @Test
    publicvoid testSet(){
        String value ="这是一个Demo测试案例!";
        install.set(key, value,new Date(1000* 20));
    }
     
    @Test
    publicvoid testGet(){     
        String value = (String)install.get(key);
        System.out.println(value);
    }
     
    @Test
    publicvoid testDelete(){
        install.delete(key);
    }
     
    @Test
    publicvoid testKeyExists(){
        System.out.println(install.keyExists(key));
    }
}
0 0
原创粉丝点击