Spring 管理 memcached

jopen 10年前發布 | 21K 次閱讀 memcached 緩存服務器

spring配置

Xml代碼

     <?xml version="1.0" encoding="UTF-8"?>  
    <beans  
     xmlns="http://www.springframework.org/schema/beans"  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     xsi:schemaLocation="http://www.springframework.org/schema/beans    
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd ">  
    <!--memcached 客戶端***start-->  
    <bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown">  
        <constructor-arg>  
            <value>neeaMemcachedPool</value>  
        </constructor-arg>  
        <property name="servers">  
            <list>  
                <value>192.168.54.207:12345</value>  
                <!--多服務器   
                 <value>  
                    192.168.54.207:12346   
                </value>  
                -->  
            </list>  
        </property>  
        <!--多服務器負載均衡-->  
        <!--<property name="weights">  
            <value>5,5</value>  
        </property>-->  
        <property name="initConn">  
            <value>20</value>  
        </property>  
        <property name="minConn">  
            <value>10</value>  
        </property>  
        <property name="maxConn">  
            <value>500</value>  
        </property>  
        <property name="maintSleep">  
            <value>30</value>  
        </property>  
        <property name="nagle">  
            <value>false</value>  
        </property>  
        <property name="maxIdle">  
            <value>6000</value>  
        </property>  
        <property name="socketTO">  
            <value>3000</value>  
        </property>  
    </bean>  

    <!--memcached client-->  
    <bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient">  
        <constructor-arg>  
            <value>neeaMemcachedPool</value>  
        </constructor-arg>  
        <property name="compressEnable">  
            <value>true</value>  
        </property>  
        <property name="compressThreshold">  
            <value>4096</value>  
        </property>  
    </bean>  
    <!--memcached 客戶端***end-->  

    <!--如果換客戶端或者換緩存了,在web.mxl里切換加載對應的配置文件即可-->  
    <bean id="cache" class="com.xxx.CacheClientImpl">  
        <property name="cacheProvider" ref="memcachedClient"/>  
    </bean>  

    </beans>
import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.kanmenzhu.cache.ICacheClient;

/**緩存的一個實現類(memcached client)
 * @author lydawen 2009-11-27
 *
 *
 */
public class CacheClientImpl{

 private MemCachedClient cacheProvider;

 @Override
 public boolean add(String key, Object value) {
  return this.cacheProvider.add(key, value);
 }

 @Override
 public boolean add(String key, Object value, long expiry) {
  return this.cacheProvider.add(key, value, new Date(expiry));
 }

 @Override
 public boolean add(String key, Object value, long expiry, Integer hashCode) {
  return this.cacheProvider.add(key, value, new Date(expiry), hashCode);
 }

 @Override
 public boolean add(String key, Object value, Integer hashCode) {
  return this.cacheProvider.add(key, value, hashCode);
 }

 @Override
 public boolean delete(String key) {
  return this.cacheProvider.delete(key);
 }

 @Override
 public boolean delete(String key, long expiry) {
  return this.cacheProvider.delete(key, new Date(expiry));
 }

 @Override
 public boolean delete(String key, Integer hashCode, long expiry) {
  return this.cacheProvider.delete(key,hashCode,new Date(expiry));
 }

 @Override
 public Object get(String key) {
  return this.cacheProvider.get(key);
 }

 @Override
 public Object get(String key, Integer hashCode) {
  return this.cacheProvider.get(key, hashCode);
 }

 @Override
 public Object get(String key, Integer hashCode, boolean asString) {
  return this.cacheProvider.get(key, hashCode, asString);
 }

 @Override
 public boolean keyExists(String key) {
  return this.cacheProvider.keyExists(key);
 }

 @Override
 public boolean replace(String key, Object value) {
  return this.cacheProvider.replace(key, value);
 }

 @Override
 public boolean replace(String key, Object value, long expiry) {
  return this.cacheProvider.replace(key, value, new Date(expiry));
 }

 @Override
 public boolean replace(String key, Object value, long expiry,
   Integer hashCode) {
  return this.cacheProvider.replace(key, value, new Date(expiry), hashCode);
 }

 @Override
 public boolean replace(String key, Object value, Integer hashCode) {
  return this.cacheProvider.replace(key, value, hashCode);
 }

 @Override
 public boolean set(String key, Object value) {
  return this.cacheProvider.set(key, value);
 }

 @Override
 public boolean set(String key, Object value, long expiry) {
  return this.cacheProvider.set(key, value, new Date(expiry));
 }

 @Override
 public boolean set(String key, Object value, long expiry, Integer hashCode) {
  return this.cacheProvider.set(key, value, new Date(expiry), hashCode);
 }

 @Override
 public boolean set(String key, Object value, Integer hashCode) {
  return this.cacheProvider.set(key, value, hashCode);
 }


 public MemCachedClient getCacheProvider() {
  return cacheProvider;
 }

 public void setCacheProvider(MemCachedClient cacheProvider) {
  this.cacheProvider = cacheProvider;
 }

}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!