zoukankan      html  css  js  c++  java
  • Memcached缓存集群_创建多实例

    1.首先在在服务端增加两个缓存实例,如192.168.120.101:11214和192.168.120.102:11215,空间分配可按实际需求定。

    2.JAVA客户端导入

    下载地址:https://files.cnblogs.com/files/zhougaojun/MemClient.zip

    3.缓存集群配置:memcached11212.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <memcached>
        
        <client name="mclient0" compressEnable="true" defaultEncoding="UTF-8" socketpool="pool0">
            <errorHandler>com.alisoft.xplatform.asf.cache.memcached.MemcachedErrorHandler</errorHandler>
        </client>
       
        <client name="mclient1" compressEnable="true" defaultEncoding="UTF-8" socketpool="pool1">
            <errorHandler>com.alisoft.xplatform.asf.cache.memcached.MemcachedErrorHandler</errorHandler>
        </client>
    
        <socketpool name="pool0" failover="true" initConn="5" minConn="5" maxConn="5000" maintSleep="0"
            nagle="false" socketTO="36000" aliveCheck="true">
            <servers>192.168.120.101:11214</servers>
        </socketpool> 
     
        <socketpool name="pool1" failover="true" initConn="5" minConn="5" maxConn="5000" maintSleep="0"
            nagle="false" socketTO="36000" aliveCheck="true">
            <servers>192.168.120.102:11215</servers>
        </socketpool> 
        
        <cluster name="cluster1" mode="active"> <!--mode = active,standby--> 
            <memCachedClients>mclient0,mclient1</memCachedClients>
        </cluster>
        
        
        
        
        
        
    </memcached>
    memcached11212.xml

    4.写工具类操作缓存

    package com.zqgame.adreport.front.memcached;
    
    import java.util.Date;
    
    import com.alisoft.xplatform.asf.cache.IMemcachedCache;
    
    
    
    
    /**
     * 读取memcached11212.xml文件的工具类
     * 版权拥有:深圳中青宝互动网络股份有限公司 <br>
     * ====================================== <br>
     *               修改记录 <br>
     * ====================================== <br>
     *  序号    姓名      日期      版本           简单描述 <br>
     *
     */
    public class MemcachedUtil11212 {
        
        /**
         * 往Cache中添加动态key
         * @param name
         * @return
         */
        public static boolean addDyncKeyToCache(String key, String keyValue, Date date){
            boolean bln = false;
            if (keyValue != null && !"".equals(keyValue)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                bln = cache.add(key, keyValue, date);
            //    logger.info("--add keyValue:" + keyValue + "-->" + bln);
                
            }
            return bln;
        }
        
        public static boolean addDyncKeyToCache(String key, Object keyValue, Date date){
            boolean bln = false;
            if (keyValue != null && !"".equals(keyValue)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                bln = cache.add(key, keyValue, date);
            //    logger.info("--add keyValue:" + keyValue + "-->" + bln);
                
            }
            return bln;
        }
        
        public static boolean addDyncKeyToCache(String key, Object keyValue, int milliseconds){
            boolean bln = false;
            if (keyValue != null && !"".equals(keyValue)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                bln = cache.add(key, keyValue, new Date(milliseconds));
            //    logger.info("--add keyValue:" + keyValue + "-->" + bln);
                
            }
            return bln;
        }
        
        /**
         * 从Cache中取得动态key
         * @param name
         * @return
         */
        public static String getStringDyncKeyFromCache(String key){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                Object obj = cache.get(key);
                if(obj != null){
                    return obj.toString();
                }
            }
            return null;
        }
        
        /**
         * 从Cache中取得动态key
         * @param name
         * @return
         */
        public static Object getDyncKeyFromCache(String key){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                Object obj = cache.get(key);
                
                if(obj != null){
                    return obj;
                }
            }
            return null;
        }
        
        /**
         * 判断cache中是否含有key
         * @param name
         * @return
         */
        public static boolean containsKey(String key){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.containsKey(key);
            }
            return false;
        }
        
        /**
         * 不存在则增加,存在则更新
         *  
         * @param key
         * @param value
         * @return 
         * @author:xuhaidui 
         * @date:2012-4-28
         */
        public static boolean addOrReplace(String key, Object value){
            if (key != null && !"".equals(key)){
                if(containsKey(key)){
                    replace(key,value);
                }else{
                    addCache(key,value);
                }
                
            }
            return false;
        }
        
        
        /**
         * 更新值
         * @param key
         * @param value
         * @return
         */
        public static boolean replace(String key, String value){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.replace(key, value);
            }
            return false;
        }
        
        /**
         * 更新值
         * @param key
         * @param value
         * @return
         */
        public static boolean replace(String key, Object value){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.replace(key, value);
            }
            return false;
        }
        
        /**
         * 更新值
         * @param key
         * @param value
         * @return
         */
        public static boolean replace(String key, String value, Date date){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.replace(key, value, date);
            }
            return false;
        }
        
        /**
         * 更新值
         * @param key
         * @param value
         * @return
         */
        public static boolean replace(String key, Object value, Date date){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.replace(key, value, date);
            }
            return false;
        }
        
        /**
         * 更新值
         * @param key
         * @param value
         * @return
         */
        public static boolean replace(String key, Object value, int milliseconds){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.replace(key, value, new Date(milliseconds));
            }
            return false;
        }
        
        public static boolean addCache(String key, String value){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.add(key, value);
            }
            return false;
        }
        
        public static boolean addCache(String key, Object value){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                return cache.add(key, value);
            }
            return false;
        }
        
        /**
         * 删除
         * @param key
         * @return Object
         */
        public static Object remove(String key){
            if (key != null && !"".equals(key)){
                IMemcachedCache cache = InitCacheManager11212.getInstance();
                if(cache.containsKey(key))
                {
                    Object object = cache.remove(key);
            //        logger.info("--remove key:" + key) ;
                    return object;
                }
            }
            return null;
        }
        
        
        
        
        
    }
    MemcachedUtil11212.java
    package com.zqgame.adreport.front.memcached;
    
    import com.alisoft.xplatform.asf.cache.ICacheManager;
    import com.alisoft.xplatform.asf.cache.IMemcachedCache;
    import com.alisoft.xplatform.asf.cache.memcached.CacheUtil;
    import com.alisoft.xplatform.asf.cache.memcached.MemcachedCacheManager;
    
    
    
    
    public class InitCacheManager11212 {
        private static ICacheManager<IMemcachedCache> manager11212;
        
        static {
                manager11212 = CacheUtil.getCacheManager(IMemcachedCache.class,
                MemcachedCacheManager.class.getName());
                manager11212.setConfigFile("memcached11212.xml");
                manager11212.setResponseStatInterval(5*1000);
                manager11212.start();
        }
        
        public static IMemcachedCache getInstance(){
            return manager11212.getCache("mclient0");
        }
    }
    InitCacheManager11212.java

    5.使用方法:

    MemcachedUtil11212.addCache(cacheKey,list);

  • 相关阅读:
    滴滴日送400万红包,仅仅为人群不冷漠?
    C++提供的四种新式转换--const_cast dynamic_cast reinterpret_cast static_cast
    GreenDao开源ORM框架浅析
    Python 计数器
    Linux虚拟内存的添加
    Linux iptables
    Python set
    Python dict get items pop update
    Python contains
    Python reverse
  • 原文地址:https://www.cnblogs.com/zhougaojun/p/4547383.html
Copyright © 2011-2022 走看看