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实例
- * Created on 2006-7-24
- * 连接缓存服务器
- * Window - Preferences - Java - Code Style - Code Templates
- */
- public class MemCacheWorkBench {
- private static final String POOL_NAME = "danqoo";
- private static final String CACHE_SERVER = "211.155.224.112:11211";
- private static MemCachedClient client = null;
- private static boolean USE_MEMCACHE_FLAG = true;
- public static MemCachedClient getMemCachedClient() {
- if (USE_MEMCACHE_FLAG){
- if (client == null) {
- String[] serverlist = { CACHE_SERVER };
- SockIOPool pool = SockIOPool.getInstance(POOL_NAME);
- pool.setServers(serverlist);
- // 设置初始连接数、最小和最大连接数以及最大处理时间
- pool.setInitConn( 5 );
- pool.setMinConn( 5 );
- pool.setMaxConn( 250 );
- pool.setMaxIdle( 1000 * 60 * 30);
- // 设置主线程的睡眠时间
- pool.setMaintSleep( 30 );
- // 设置TCP的参数,连接超时等
- pool.setNagle( false );
- //连接建立后对超时的控制
- pool.setSocketTO( 3000 );
- //连接建立时对超时的控制
- pool.setSocketConnectTO( 0 );
- pool.initialize();
- client = new MemCachedClient();
- // 压缩设置,超过指定大小(单位为K)的数据都会被压缩
- client.setCompressEnable(true);
- client.setCompressThreshold(4096);
- client.setPrimitiveAsString(true);
- client.setPoolName(POOL_NAME);
- }
- return client;
- }else{
- return null;
- }
- }
- }
- /*
- * Created on 2006-7-24
- * 单子模式实加载一个对象
- * Window - Preferences - Java - Code Style - Code Templates
- */
- public class MemCacheUtil {
- public static String indeKey = "danqoo.index";
- private static Integer OVER_TIME = 5*60*1000;
- private static Log logger = LogFactory.getLog(MemCacheUtil.class);
- private static MemCachedClient mc = MemCacheWorkBench.getMemCachedClient();
- public static Object get(String key) {
- if (mc != null && key != null && key.trim().length() > 0)
- return mc.get(key);
- else
- return null;
- }
- public static void set(String key, Object value) {
- if (mc != null && key != null && key.trim().length() > 0)
- mc.set(key, value,new Date(OVER_TIME));//过期时间设置默认
- }
- public static void set(String key, Object value,Date date) {
- if (mc != null && key != null && key.trim().length() > 0)
- mc.set(key, value,date);
- }
- public static void delete(String key) {
- if (mc != null && key != null && key.trim().length() > 0)
- mc.delete(key);
- }
- public static void clear() {
- if (mc != null){
- mc.flushAll();
- }
- }
- public static String createKey(String id,Map map){
- StringBuffer sbuf = new StringBuffer();
- sbuf.append(id);
- for (Object key : map.keySet()) {
- sbuf.append(".").append(key).append("=").append(map.get(key));
- }
- return Utilities.encodePassword(sbuf.toString(), "md5");
- }
- public static String createKey(String id,String paraName,String value){
- StringBuffer sbuf = new StringBuffer();
- sbuf.append(id).append(".").append(paraName).append("=").append(value);
- return Utilities.encodePassword(sbuf.toString(), "md5");
- }
- public static String createKey(String id){
- return Utilities.encodePassword(id.toString(), "md5");
- }
- }
- /**
- * @Dao层运用缓存机制
- * @date:2008-9-17
- * @time:上午09:42:03
- */
- public class AdvPicDaoImpl extends SqlMapClientDaoSupport implements IAdvPicDao{
- public AdvPicBean getAdvPic(int id) {
- return (AdvPicBean)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvPic",id);
- }
- public void setAdvPic(AdvPicBean bean) {
- this.getSqlMapClientTemplate().insert("advpic.setAdvPic",bean);
- }
- public List<AdvPicBean> getAdvice(int begin,int advType,int advFileType)
- {
- Map map=new HashMap();
- map.put("begin", begin);
- map.put("adType", advType);
- map.put("adFileType", advFileType);
- String key = MemCacheUtil.createKey("advpic.getAdvice",map);
- List<AdvPicBean> list = (List<AdvPicBean>) MemCacheUtil.get(key);
- if (list == null ){
- list = this.getSqlMapClientTemplate().queryForList("advpic.getAdvice",map);
- MemCacheUtil.set(key, list);
- }
- return list;
- }
- public List<FLinkForm> findFLinkList(Integer num) {
- // return this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);
- String key = MemCacheUtil.createKey("advpic.findFLinkList","num",Integer.toBinaryString(num));
- Object obj = MemCacheUtil.get(key);
- if (obj !=null){
- return (List)obj;
- }else{
- List value = this.getSqlMapClientTemplate().queryForList("advpic.findFLinkList",num);
- MemCacheUtil.set(key, value);
- return value;
- }
- }
- public FLinkForm getAdvertiseCodeById(String id) {
- return (FLinkForm)this.getSqlMapClientTemplate().queryForObject("advpic.getAdvertiseCodeById", id);
- }
- public WordAdBean getWordAdByKey(String key) {
- return (WordAdBean)this.getSqlMapClientTemplate().queryForObject("advpic.getWordAdByKey", key);
- }
- }
posted on 2013-06-02 19:30 李涛_buptsse 阅读(431) 评论(0) 收藏 举报