您的位置:首页 > 数据库 > Memcache

Memcached入门(一)

2015-10-31 23:03 656 查看
一、安装memcached服务端(过程略)。

二、简单代码测试。

模拟从数据库查询用户信息:

public User queryUserInfo(){  
02.        MemberCache cache = new MemberCache();  
03.        if(cache.get("user")!=null){  
04.            System.out.println("------------存在缓存中-------------");  
05.            return (User) cache.get("user");  
06.        }else{  
07.            System.out.println("---------------缓存中不存在----------------");  
08.            User user = new User();  
09.            user.setUsername("柳松");  
10.            user.setPassword("123456");  
11.            boolean b = cache.set("user", user,new Date(10000));  
12.            System.out.println(b);  
13.            return form;  
14.        }  
15.    }


memcachedUtil:
public class MemberCache {  
02.      
03.    // 创建全局的唯一实例   
04.    protected static MemCachedClient mcc = new MemCachedClient();  
05.      
06.    static{  
07.         // 服务器列表和其权重  
08.        String[] servers = { "127.0.0.1:11211" };  
09.        Integer[] weights = { 3 };    
10.        // 获取socke连接池的实例对象   
11.        SockIOPool pool = SockIOPool.getInstance();   
12.          
13.        // 设置服务器信息   
14.        pool.setServers(servers);    
15.        pool.setWeights(weights);   
16.          
17.     // 设置初始连接数、最小和最大连接数以及最大处理时间    
18.        pool.setInitConn(5);    
19.        pool.setMinConn(5);    
20.        pool.setMaxConn(250);    
21.        pool.setMaxIdle(1000 * 60 * 60 * 6);    
22.    
23.        // 设置主线程的睡眠时间    
24.        pool.setMaintSleep(30);    
25.    
26.        // 设置TCP的参数,连接超时等    
27.        pool.setNagle(false);    
28.        pool.setSocketTO(3000);    
29.        pool.setSocketConnectTO(0);    
30.    
31.        // 初始化连接池    
32.        pool.initialize();    
33.    
34.        // 压缩设置,超过指定大小(单位为K)的数据都会被压缩    
35.        mcc.setCompressEnable(true);    
36.        mcc.setCompressThreshold(64 * 1024);    
37.    }    
38.  
39.      
40.    /** 
41.     * 添加一个指定的值到缓存中. 
42.     *  
43.     * @param key 
44.     * @param value 
45.     * @return 
46.     */  
47.    public boolean put(String key, Object value) {  
48.        return mcc.add(key, value);  
49.    }  
50.    /** 
51.     * 指定缓存时间 
52.     * @param key 
53.     * @param value 
54.     * @param expiry 
55.     * @return 
56.     */  
57.    public boolean put(String key, Object value, Date expiry) {  
58.        return mcc.add(key, value, expiry);  
59.    }  
60.  
61.    public boolean replace(String key, Object value) {  
62.        return mcc.replace(key, value);  
63.    }  
64.  
65.    public boolean replace(String key, Object value, Date expiry) {  
66.        return mcc.replace(key, value, expiry);  
67.    }  
68.      
69.    public boolean set(String key,Object value,Date expiry){  
70.        return mcc.set(key, value,expiry);  
71.    }  
72.  
73.    /** 
74.     * 根据指定的关键字获取对象. 
75.     *  
76.     * @param key 
77.     * @return 
78.     */  
79.    public Object get(String key) {  
80.        Object rv = mcc.get(key);  
81.        return rv;  
82.    }  
83.}
由于设置了10s的缓存期限,在10s内执行两次查询,输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: