memcache java mysql_分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用...

//MemcachedFactory.java

public classMemcachedFactory {//创建MemCachedClient全局对象

private static MemCachedClient memCachedClient = newMemCachedClient();static{//创建服务器列表及其权重

String[] servers = { "127.0.0.1:11211"};

Integer[] weights= { 3};//创建Socket连接池

SockIOPool pool =SockIOPool.getInstance();//设置服务器信息

pool.setServers(servers);

pool.setWeights(weights);

pool.setFailover(true);//设置初始连接数、最小和最大连接数以及最大处理时间

pool.setInitConn(5);

pool.setMinConn(5);

pool.setMaxConn(250);

pool.setMaxIdle(1000 * 60 * 60 * 6);//设置主线程睡眠时间

pool.setMaintSleep(30);//设置TCP参数、连接超时等

pool.setNagle(false);

pool.setSocketTO(3000);

pool.setSocketConnectTO(0);

pool.setAliveCheck(true);//初始化连接池

pool.initialize();

}protectedMemcachedFactory() {

}//Memcached 实例

protected static MemcachedFactory instance = newMemcachedFactory();public staticMemcachedFactory getInstance() {returninstance;

}/*** 添加缓存记录

*@paramkey

*@paramvalue

*@return

*/

public booleanadd(String key, Object value) {returnmemCachedClient.add(key, value);

}/*** 添加缓存记录,有效期为expiry

*@paramkey

*@paramvalue

*@paramexpiry

*@return

*/

public booleanadd(String key, Object value, Date expiry) {returnmemCachedClient.add(key, value, expiry);

}/*** 缓存查询结果对象QueryResult

*@paramkey

*@paramvalue

*@return

*/

public boolean add(String key, QueryResult

}/*** 提取缓存记录

*@paramkey

*@return

*/

publicObject get(String key) {returnmemCachedClient.get(key);

}/*** 判断缓存是否存在

*@paramkey

*@return

*/

public booleankeyExist(String key) {returnmemCachedClient.keyExists(key);

}

}

IndexController.java

@Controllerpublic classIndexCtroller{

@AutowiredprivateIIndexService indexService;

@RequestMapping(value= "/back/index")publicString index(HttpServletRequest request) {

MemcachedFactory mcInstance=MemcachedFactory.getInstance();

String jsonTree= null;//不存在key缓存记录则查询数据库并添加存入memcached

if(!mcInstance.keyExist("jsonTree")) {

List

List2JsonUtil

jsonTree= list2JsonUtil.getJosnStrFromList(menuList, null);

mcInstance.add("jsonTree", jsonTree);//否则直接从memcached中提取

}else{

jsonTree= (String) mcInstance.get("jsonTree");

}if(null !=jsonTree){

request.setAttribute("jsonTree", jsonTree);

}return "/back/index";

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值