Java应用程序如何使用memcached

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的安装和基本使用我的博客也有介绍。

代码片段(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));
     }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值