当前位置: 首页 > news >正文

网站开发创建画布/百度百科优化

网站开发创建画布,百度百科优化,网站信息发布和内容建设自查报告,网站产品介绍页面的布局方案ibatismemcachedexceptionobjectstringnull在ibatis源码基础上修改,增加对memcached支持,通过配置IBatis的xml文件即可实现memcached细粒度话缓存,使用简单,缓存效果好。 spring下首先初始化MemcachedManager对象,或者通过程序初始…
ibatismemcachedexceptionobjectstringnull

 

在ibatis源码基础上修改,增加对memcached支持,通过配置IBatis的xml文件即可实现memcached细粒度话缓存,使用简单,缓存效果好。 spring下首先初始化MemcachedManager对象,或者通过程序初始化也一样,不要用ibatis官方的jar包,否则会冲突

init-method="init" destroy-method="closePool">
 
 192.168.0.1:11111, 192.168.0.2:11111 
 
 
 
 
 
 

Unknown end tag for

 

然后配置sqlMapConfig.xml文件:

"http://ibatis-with-memcached.googlecode.com/files/sql-map-config-2.dtd"> #注意这里,不用官方的,这个dtd文件加了个新属性databaseUrl,区分不同数据库的缓存对象

 

 

 
 
 
cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="256" maxSessions="256" maxTransactions="150" useStatementNamespaces="true" databaseUrl="数据库名或地址" #新增加的属性 />

ibatis的xml文件:Albums.xml #创建缓存model

 
 
 
 
 
 
 #可以根据主键进行缓存,可以设置为空,不能不设 
 
 #可以根据组(比如用户id)进行缓存,更加细粒度化,可以设置为空,不能不设

Unknown end tag for

#加入缓存



 

#删除对象,删除缓存

 
delete from albums where id=1 and accId=1 #(加上accId可以删除分组缓存)
 
package com.ibatis.sqlmap.engine.cache.memcached; 
 
import java.io.Serializable; 
import java.util.Collection; 
import java.util.Date; 
import java.util.Map; 
 
import org.apache.log4j.Logger; 
 
import com.danga.MemCached.MemCachedClient; 
import com.danga.MemCached.SockIOPool; 
 
 
public class MemcachedManager { 
 
        private static Logger logger = Logger.getLogger(MemcachedManager.class); 
 
        private static String memcachedDomain = "IBATIS_CACHED"; // memcached 域名 
 
        private String serverlist; 
 
        private static MemCachedClient mcc = null; 
 
        private SockIOPool pool = null; 
 
        private int initConn = 5; 
 
        private int minConn = 5; 
 
        private int maxConn = 50; 
 
         
        public void init() { 
                if (mcc != null) 
                        return; 
 
                logger.info("Initializing ibatis memcached start."); 
                if (pool == null) { 
                        try { 
                                pool = SockIOPool.getInstance(memcachedDomain); 
                                pool.setServers(serverlist.split(",")); 
                                if (!pool.isInitialized()) { 
                                        pool.setInitConn(initConn); 
                                        pool.setMinConn(minConn); 
                                        pool.setMaxConn(maxConn); 
                                        pool.setMaintSleep(30); 
                                        pool.setNagle(false); 
                                        pool.setSocketTO(60 * 60); 
                                        pool.setSocketConnectTO(0); 
                                        pool.initialize(); 
                                } 
                        } catch (Exception ex) { 
                                logger.error(ex.getMessage()); 
                        } 
                } 
 
                if (mcc == null) { 
                        mcc = new MemCachedClient(memcachedDomain); 
                        mcc.setCompressEnable(false); 
                        mcc.setCompressThreshold(0); 
                } 
                logger.info("Initializing youxigu Memcached ok!"); 
        } 
 
         
        public void closePool() { 
                pool.shutDown(); 
                mcc = null; 
                pool = null; 
                logger.info("Ibatis memcached pool closed"); 
        } 
 
         
        public static boolean set(Object key, Serializable obj) { 
                logger.debug("set key:" + getKey(key) + ", value:" + obj); 
                try { 
                        return mcc.set(getKey(key), obj); 
                } catch (Exception e) { 
                        logger.error("Pool set error!"); 
                        e.printStackTrace(); 
                } 
                return false; 
        } 
 
         
        public static boolean set(Object key, Serializable obj, long cacheTime) { 
                try { 
                        return mcc.set(getKey(key), obj, new Date(cacheTime)); 
                } catch (Exception e) { 
                        logger.error("Pool set error!"); 
                        e.printStackTrace(); 
                } 
                return false; 
        } 
 
         
        public static void replace(int key, Serializable value, long cacheTime) { 
                try { 
                        mcc.replace(getKey(key), value, new Date(cacheTime)); 
                } catch (Exception e) { 
                        logger.error(" pool set error!"); 
                } 
        } 
 
         
        public static Object get(Object key) { 
                Object result = null; 
                String realkey = getKey(key); 
                try { 
                        result = mcc.get(realkey); 
                } catch (Exception e) { 
                        e.printStackTrace(); 
                } 
                logger.debug("get key:" + getKey(key) + ", value:" + result); 
                return result; 
        } 
 
         
        public static void setCounter(Object key, long count) { 
                try { 
                        mcc.storeCounter(getCountKey(key), count); 
                } catch (Exception e) { 
                        logger.error("Pool setCounter error!"); 
                } 
        } 
 
         
        public static void addCounter(Object key) { 
                if(mcc.get(getCountKey(key))==null){ 
                        mcc.storeCounter(getCountKey(key), 0); 
                } 
                try { 
                        mcc.incr(getCountKey(key)); 
                } catch (Exception e) { 
                        logger.error("Pool setCounter error!"); 
                } 
        } 
 
         
        public static void decreaseCounter(Object key) { 
                try { 
                        mcc.decr(getCountKey(key)); 
                } catch (Exception e) { 
                        logger.error("Pool setCounter error!"); 
                } 
        } 
 
         
        public static void addCounter(Object key, long addValue) { 
                try { 
                        mcc.incr(getCountKey(key), addValue); 
                } catch (Exception e) { 
                        logger.error(" pool setCounter error!"); 
                } 
        } 
 
         
        public static long getCounter(Object key) { 
                long result = 0; 
                try { 
                        result = mcc.getCounter(getCountKey(key)); 
                } catch (Exception e) { 
                        logger.error(e.getMessage()); 
                } 
                return result; 
        } 
 
         
        public static boolean delete(Object key) { 
                try { 
                        return mcc.delete(getKey(key)); 
                } catch (Exception e) { 
                        logger.error(e.getMessage()); 
                } 
                return false; 
        } 
 
         
        public static long deleteCounter(Object key) { 
                try { 
                        return mcc.decr(getCountKey(key)); 
                } catch (Exception e) { 
                        logger.error(" pool setCounter error!"); 
                } 
                return 0;  
        } 
 
         
        public static void flushAll() { 
                mcc.flushAll(); 
        } 
         
        @SuppressWarnings("unchecked") 
        public static long size(){ 
                long size=0L; 
                Map<</SPAN>String,Map<</SPAN>String,String>> status=mcc.statsItems(); 
                Collection<</SPAN>Map<</SPAN>String,String>> values=status.values(); 
                for (Map<</SPAN>String,String> state:values) { 
                        String num=state.get("items:1:number"); 
                        if(num==null) 
                                continue; 
                         
                        size+=Long.parseLong(state.get("items:1:number")); 
                } 
                return size; 
        } 
 
         
        private static String getKey(Object key) { 
                return memcachedDomain + "@" + key; 
        } 
 
        private static String getCountKey(Object key) { 
                return memcachedDomain + "@" + key + "_count"; 
        } 
 
         
        public void setServerlist(String serverlist) { 
                this.serverlist = serverlist; 
        } 
 
         
        public void setInitConn(int initConn) { 
                this.initConn = initConn; 
        } 
 
         
        public void setMinConn(int minConn) { 
                this.minConn = minConn; 
        } 
 
         
        public void setMaxConn(int maxConn) { 
                this.maxConn = maxConn; 
        } 
 
         
        public void setMemcachedDomain(String memcachedKey) { 
                MemcachedManager.memcachedDomain = memcachedKey; 
        } 
} 
http://www.lbrq.cn/news/1422973.html

相关文章:

  • 哈尔滨市建设工程信息网官网/郑州seo优化培训
  • 网站建设怎么开发客户/企业如何建立网站
  • 网站加在线qq/体验营销策略有哪些
  • 汕头网站设计哪家好/竞价托管推广
  • 建设网站找网络公司/熊猫关键词工具
  • 评价一个网站的好坏/十大计算机培训机构排名
  • 如何创建网站推广产品/引擎优化seo怎么做
  • 重庆做网站 帮助中心/廊坊网站排名优化公司哪家好
  • 株洲市住房和城乡建设局门户网站/深圳优化公司高粱seo较
  • 广州网站建设团队/服务营销论文
  • 哪几个网站适合自己做外贸/cba最新积分榜
  • 百度做的网站一般在什么后台/关键seo排名点击软件
  • 学网站开发如何挣钱/百度网站分析
  • 济南微信网站制作/温州企业网站排名优化
  • 浙江建设继续教育网站首页/广西疫情最新消息
  • 企业建立网站/百度搜索最多的关键词
  • 网站系统设计方案/免费域名注册永久
  • 大型门户网站设计解决方案/可以营销的十大产品
  • 做网站被用作非法用途/网上做广告怎么收费
  • swing做网站/5188关键词挖掘工具
  • 城乡建设局官方网站/网页设计与制作软件
  • 用axure做网站的规范/百度信息流账户搭建
  • 住房和建设厅网站/灰色词优化培训
  • html网站怎么做视频/优化营商环境发言材料
  • 3dweb做的网站/南宁seo做法哪家好
  • 建筑论坛网站/企业如何做网络推广
  • 网站开发流程指什么/搜狗推广登录平台
  • 南京做网站建设有哪些内容/月饼营销软文
  • 广告公司网站模板/软文范例100字
  • 扬州做网站公司/拼多多女装关键词排名
  • Linux系统编程—Linux基础指令
  • Elasticsearch赋能规章制度智能检索:从海量文档到秒级响应
  • Linux网络基础(一)
  • 【计算机视觉与深度学习实战】01基于直方图优化的图像去雾技术
  • ASCII与Unicode:编码世界的奥秘
  • Morph Studio-一站式AI视频创作平台