MemCached 安装日志


关键字: memcached 
1、下载memcached-1.2.1.tar.gz和libevent-1.3b.tar.gz; 
2、安装libevent 
tar xvfz  libevent-1.3b.tar.gz 
cd libevent-1.3b 
./configure && make 
make install 
3、安装memcache 
tar xvfz  memcached-1.2.1.tar.gz 
cd  memcached-1.2.1 
./configure 
make && make install 
4、将libevent安装的/usr/local/lib输出到引用库路径 
# vi ~/.bash_profile 
加入如下一行: 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 
5、启动(安装后位置:/usr/local/bin/memcached) 
memcached  -d  -m 128 -l 192.168.0.50 -p 11211 -u root 
即以root用户,分配最大2GM内存启动memcache 
memcached  -d  -m 128 -l 192.168.0.50 -p 11212 -u root 
在另外一个端口11212启动另外一个memcache实例 
Java代码  收藏代码
  1.    
  2.   
  3. * Created on 2006-7-24  
  4.  * 连接缓存服务器  
  5.  * Window - Preferences - Java - Code Style - Code Templates  
  6.  */  
  7. public class MemCacheWorkBench {  
  8.       
  9.     private static final String POOL_NAME = "danqoo";   
  10.       
  11.     private static final String CACHE_SERVER = "211.155.224.112:11211";  
  12.   
  13.     private static MemCachedClient client = null;  
  14.       
  15.     private static boolean USE_MEMCACHE_FLAG = true;  
  16.   
  17.     public static MemCachedClient getMemCachedClient() {  
  18.         if (USE_MEMCACHE_FLAG){  
  19.             if (client == null) {  
  20.                 String[] serverlist = { CACHE_SERVER };  
  21.                 SockIOPool pool = SockIOPool.getInstance(POOL_NAME);  
  22.                 pool.setServers(serverlist);  
  23.                 // 设置初始连接数、最小和最大连接数以及最大处理时间  
  24.       
  25.                 pool.setInitConn( 5 );         
  26.                 pool.setMinConn( 5 );         
  27.                 pool.setMaxConn( 250 );         
  28.                 pool.setMaxIdle( 1000 * 60 * 30);                 
  29.                 // 设置主线程的睡眠时间  
  30.                 pool.setMaintSleep( 30 );     
  31.                 // 设置TCP的参数,连接超时等  
  32.                 pool.setNagle( false );         
  33.                 //连接建立后对超时的控制      
  34.                 pool.setSocketTO( 3000 );      
  35.                 //连接建立时对超时的控制      
  36.                 pool.setSocketConnectTO( 0 );     
  37.                 pool.initialize();     
  38.                 client = new MemCachedClient();  
  39.                 // 压缩设置,超过指定大小(单位为K)的数据都会被压缩  
  40.                 client.setCompressEnable(true);  
  41.                 client.setCompressThreshold(4096);  
  42.                 client.setPrimitiveAsString(true);  
  43.                 client.setPoolName(POOL_NAME);  
  44.             }  
  45.             return client;  
  46.         }else{  
  47.             return null;  
  48.         }  
  49.     }  
  50.       
  51. }  


Java代码  收藏代码
  1. /* 
  2.  * Created on 2006-7-24 
  3.  * 单子模式实加载一个对象 
  4.  * Window - Preferences - Java - Code Style - Code Templates 
  5.  */  
  6. public class MemCacheUtil {  
  7.       
  8.     public static String indeKey = "danqoo.index";  
  9.     private static Integer OVER_TIME = 5*60*1000;  
  10.     private static Log logger = LogFactory.getLog(MemCacheUtil.class);  
  11.     private static MemCachedClient mc = MemCacheWorkBench.getMemCachedClient();  
  12.   
  13.       
  14.     public static Object get(String key) {  
  15.         if (mc != null && key != null && key.trim().length() > 0)  
  16.             return mc.get(key);  
  17.         else  
  18.             return null;  
  19.     }  
  20.   
  21.     public static void set(String key, Object value) {  
  22.         if (mc != null && key != null && key.trim().length() > 0)  
  23.             mc.set(key, value,new Date(OVER_TIME));//过期时间设置默认  
  24.     }  
  25.       
  26.     public static void set(String key, Object value,Date date) {  
  27.         if (mc != null && key != null && key.trim().length() > 0)  
  28.             mc.set(key, value,date);  
  29.     }  
  30.   
  31.     public static void delete(String key) {  
  32.         if (mc != null && key != null && key.trim().length() > 0)  
  33.             mc.delete(key);  
  34.     }  
  35.   
  36.     public static void clear() {  
  37.         if (mc != null){  
  38.             mc.flushAll();  
  39.         }     
  40.     }  
  41.       
  42.     public static String createKey(String id,Map map){  
  43.         StringBuffer sbuf = new StringBuffer();  
  44.         sbuf.append(id);  
  45.         for (Object key : map.keySet()) {             
  46.             sbuf.append(".").append(key).append("=").append(map.get(key));  
  47.         }  
  48.         return  Utilities.encodePassword(sbuf.toString(), "md5");  
  49.     }  
  50.       
  51.     public static String createKey(String id,String paraName,String value){  
  52.         StringBuffer sbuf = new StringBuffer();  
  53.         sbuf.append(id).append(".").append(paraName).append("=").append(value);  
  54.         return Utilities.encodePassword(sbuf.toString(), "md5");  
  55.     }  
  56.       
  57.     public static String createKey(String id){        
  58.         return Utilities.encodePassword(id.toString(), "md5");  
  59.     }  
  60.           
  61. }  


Java代码  收藏代码
  1. /**  
  2.  * @Dao层运用缓存机制 
  3.  * @date:2008-9-17  
  4.  * @time:上午09:42:03  
  5.  */  
  6. public class AdvPicDaoImpl extends SqlMapClientDaoSupport implements IAdvPicDao{  
  7.       
  8.     public AdvPicBean getAdvPic(int id) {  
  9.           
  10.         return (AdvPicBean)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvPic",id);  
  11.     }  
  12.   
  13.     public void setAdvPic(AdvPicBean bean) {  
  14.         this.getSqlMapClientTemplate().insert("advpic.setAdvPic",bean);  
  15.           
  16.     }         
  17.      public List<AdvPicBean> getAdvice(int begin,int advType,int advFileType)  
  18.      {  
  19.          Map map=new HashMap();  
  20.          map.put("begin", begin);  
  21.          map.put("adType", advType);  
  22.          map.put("adFileType", advFileType);  
  23.          String key = MemCacheUtil.createKey("advpic.getAdvice",map);  
  24.          List<AdvPicBean> list = (List<AdvPicBean>) MemCacheUtil.get(key);  
  25.          if (list == null ){  
  26.              list =  this.getSqlMapClientTemplate().queryForList("advpic.getAdvice",map);  
  27.              MemCacheUtil.set(key, list);  
  28.          }  
  29.          return list;  
  30.      }  
  31.   
  32.   
  33.     public List<FLinkForm> findFLinkList(Integer num) {  
  34. //      return this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);  
  35.         String key = MemCacheUtil.createKey("advpic.findFLinkList","num",Integer.toBinaryString(num));  
  36.         Object obj = MemCacheUtil.get(key);  
  37.         if (obj !=null){  
  38.             return (List)obj;  
  39.         }else{  
  40.             List value = this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);  
  41.             MemCacheUtil.set(key, value);  
  42.             return value;  
  43.         }  
  44.     }  
  45.   
  46.     public FLinkForm getAdvertiseCodeById(String id) {  
  47.         return (FLinkForm)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvertiseCodeById", id);  
  48.     }  
  49.   
  50.     public WordAdBean getWordAdByKey(String key) {  
  51.         return (WordAdBean)this.getSqlMapClientTemplate().queryForObject("advpic.getWordAdByKey", key);  
  52.     }             
  53. }  

 

 

posted on 2013-06-02 19:30  李涛_buptsse  阅读(431)  评论(0)    收藏  举报