Maven项目中用Memcached实现缓存配置

来源:互联网 发布:网络用语 丫丫 编辑:程序博客网 时间:2024/06/07 00:14

这是新的项目架构,得说,这次很大胆的用了Maven 的多模块项目设计来重新做这个庞大的项目。

Maven项目中用Memcached实现缓存配置 - 小沉 - 沉积异次元
 

 

下面记录Memcached 在Maven 中的配置。

首先介绍如何手动添加第三方类库到自己电脑的本地仓库,这折腾了我一个晚上,点击链接 Maven 中手动添加第三方类库到自己电脑的本地仓库.m2 。

首先添加Memcached 的Java 客户端到项目依赖中,如下执行:

1. 将Memcached.jar 放到E 盘下面;

2. cmd 到打开命令窗口以后开始安装,运行如下指令:

Sql代码  收藏代码
  1. E:\User>mvn install:install-file -Dfile=e:/memcached.jar -DgroupId=com.danga -DartifactId=memcached -Dversion=2.5.3 -Dpackaging=jar -DgeneratePom=true  
 

 

3. 这样它就会自动在本地仓库里面加入自定义的jar 依赖。

接着在项目添加以下依赖:

Xml代码  收藏代码
  1. <dependency>  
  2.     <groupId>com.danga</groupId>  
  3.     <artifactId>memcached</artifactId>  
  4.     <version>2.5.3</version>  
  5. </dependency>  
 

 

接着在项目中写Memcached 的应用类,下面是根据官方demo 修改的,仅供参考:

 

Java代码  收藏代码
  1. /** 
  2.  * @author jason61719 
  3.  * @buildTime 2011.03.12 
  4.  * @description 本类用于连接缓冲池Memcached 
  5.  */  
  6. package base.util;  
  7.   
  8. import com.danga.MemCached.MemCachedClient;  
  9. import com.danga.MemCached.SockIOPool;  
  10.   
  11. public class CacheHelper {  
  12.       
  13.     /* 单例模式 */  
  14.     protected static MemCachedClient mcc = new MemCachedClient();  
  15.       
  16.     private CacheHelper() {  
  17.     }  
  18.       
  19.     /* 配置服务器组 */  
  20.     static {  
  21.           
  22.         /* 定义IP地址和端口 */  
  23.         String[] servers = { "127.0.0.1:11212" };  
  24.           
  25.         /* 设置缓存大小 */  
  26.         Integer[] weights = { 2 };  
  27.           
  28.         /* 拿到一个连接池的实例 */  
  29.         SockIOPool pool = SockIOPool.getInstance();  
  30.           
  31.         /* 注入服务器组信息 */  
  32.         pool.setServers(servers);  
  33.         pool.setWeights(weights);  
  34.           
  35.         /* 配置缓冲池的一些基础信息 */  
  36.         pool.setInitConn(5);  
  37.         pool.setMinConn(5);  
  38.         pool.setMaxConn(250);  
  39.         pool.setMaxIdle(1000 * 60 * 60 * 6);  
  40.           
  41.         /* 设置线程休眠时间 */  
  42.         pool.setMaintSleep(30);  
  43.           
  44.         /* 设置关于TCP连接 */  
  45.         pool.setNagle(false);// 禁用nagle算法  
  46.         pool.setSocketConnectTO(0);  
  47.         pool.setSocketTO(3000);// 3秒超时  
  48.           
  49.         /* 初始化 */  
  50.         pool.initialize();  
  51.           
  52.         /* 设置缓存压缩 */  
  53.         mcc.setCompressEnable(true);  
  54.         mcc.setCompressThreshold(64 * 1024);  
  55.           
  56.     }  
  57.       
  58.     public static boolean set(String arg0, Object arg1) {  
  59.         return mcc.set(arg0, arg1);  
  60.     }  
  61.       
  62.     public static Object get(String arg0) {  
  63.         return mcc.get(arg0);  
  64.     }  
  65.       
  66.     /* 测试 */  
  67.     public static void main(String[] args) {  
  68.         CacheHelper.set("gogo""gogogogo");  
  69.         System.out.println(CacheHelper.get("gogo"));// gogogogo  
  70.         System.out.println(CacheHelper.get("gogog"));// null  
  71.         /* 如果出现都为null,检查地址和端口。端口可以到Memcached同目录配置文件看 */  
  72.     }  
  73.       
  74. }  
 

 

 

后期可能会加入数据库和缓存同步功能,初步构想是用数据库的触发器来完成,也就是在需要放在缓存的数据表操作的时候触发刷新缓存的操作,这不仅让项目代码的业务考虑缩小范围,另一方面代码侵入也小,容易修改。具体实现等更新。

0 0
原创粉丝点击