spring 管理 memcached (方便扩展)
?
最近项目中要用到缓存,无意中了解到memcached使用比较广泛,但考虑到以后其它情况(有可能换其它缓存),想了想
?
应该用一个更灵活的方法来管理缓存,经过资料查找和自己耐心调试,最终还是出来了(暂未过多考虑性能)
?
??
有个疑惑:这个客户端的连接池,设置连接的空闲时间短点好(n秒)还是设置时间长点好呢?(n小时)
时间长了,如果并发很大是不是连接很快就满了?
?
?
?
后来我修改了,一个客户端一个配置文件,这样用哪个客户端就只加载对应的配置文件
详请见附件(spring_memcached.zip )。?接口里的方法定义不是太合理,只是提供给有需要的朋友一个思路。
?
暂写了两个客户端的配置一个是官方客户端,一个是xmencached (也是网上找来或者看官方实现)。
?
?
spring配置(代码详见附件(一个接口,两个实现,两个配置文件),具体客户端支持包请自行下载):
<?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" 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" ref="memcachedClient"/></bean></beans>
?
4 楼 whaosoft 2009-12-01 yishh 写道还是放弃com.danga.MemCached,在高并发的情况下,完全不可用。换xmemcached或者spymemcached吧