`
lveyo
  • 浏览: 909438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring调用memcached client for java

阅读更多
memcached client for java客户端API:memcached client for java
网址:http://www.whalin.com/memcached

调用测试类
MClient.java
package bcndyl.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.danga.MemCached.MemCachedClient;

public class MClient {
	
	public static void main(String[] args){
		
		ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");
		MemCachedClient mc = (MemCachedClient)ctx.getBean("memcachedClient");
		for(int i=0; i<100; i++){
			//try{Thread.sleep(2000);}catch(Exception e){}
			mc.set("key"+i, "value"+i);
		}
		try{Thread.sleep(5000);}catch(Exception e){}
		for(int i=0; i<100; i++){
			System.out.println("get "+i+" value "+mc.get("key"+i));
		}
	}

}


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.0.xsd">

	<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.227.20:12111</value>
				<value>192.168.227.20:12112</value>
			</list>
		</property>
		<property name="initConn"><value>20</value></property>
		<property name="minConn"><value>10</value></property>
		<property name="maxConn"><value>50</value></property>
		<property name="maintSleep"><value>30</value></property>
		<property name="nagle"><value>false</value></property>
		<property name="socketTO"><value>3000</value></property>
		<!--  
		<property name="initConn"><value></value></property>
		<property name="initConn"><value></value></property>-->
	</bean>
	
	<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>

</beans>


经过测试,个人感觉,这个java的memcached API比spymemcached要好用,可以让spring来维护这个memcached的connection连接池
5
2
分享到:
评论
8 楼 colbybobo 2014-02-20  
fangzhouxing 写道
出现下列错误:

[DEBUG,danga.MemCached.SockIOPool] ++++ initializing pool with following settings:
[DEBUG,danga.MemCached.SockIOPool] ++++ initial size: 20
[DEBUG,danga.MemCached.SockIOPool] ++++ min spare   : 10
[DEBUG,danga.MemCached.SockIOPool] ++++ max spare   : 50
[DEBUG,danga.MemCached.SockIOPool] ++++ initializing internal hashing structure for consistent hashing
[DEBUG,danga.MemCached.SockIOPool] ++++ added 127.0.0.1:12111 to server bucket
[DEBUG,danga.MemCached.SockIOPool] +++ creating initial connections (20) for host: 127.0.0.1:12111
[ERROR,danga.MemCached.SockIOPool] ++++ failed to get SockIO obj for: 127.0.0.1:12111
[ERROR,danga.MemCached.SockIOPool] Connection refused: no further information
java.net.ConnectException: Connection refused: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100)
at com.danga.MemCached.SockIOPool$SockIO.getSocket(SockIOPool.java:1612)
at com.danga.MemCached.SockIOPool$SockIO.<init>(SockIOPool.java:1585)
at com.danga.MemCached.SockIOPool.createSocket(SockIOPool.java:782)
at com.danga.MemCached.SockIOPool.populateBuckets(SockIOPool.java:671)
at com.danga.MemCached.SockIOPool.initialize(SockIOPool.java:634)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:236)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:286)
at com.google.gwt.dev.HostedMode.doStartUpServer(HostedMode.java:367)
at com.google.gwt.dev.HostedModeBase.startUp(HostedModeBase.java:588)
at com.google.gwt.dev.HostedModeBase.run(HostedModeBase.java:395)
at com.google.gwt.dev.HostedMode.main(HostedMode.java:232)
[DEBUG,danga.MemCached.SockIOPool] ++++ ignoring dead host: 127.0.0.1:12111 for 1000 ms
[ERROR,danga.MemCached.SockIOPool] ++++ failed to create connection to: 127.0.0.1:12111 -- only 0 created.
[DEBUG,danga.MemCached.SockIOPool] ++++ Starting self maintenance....
[DEBUG,danga.MemCached.SockIOPool] +++ ending self maintenance.
[DEBUG,danga.MemCached.SockIOPool] ++++ Starting self maintenance....

memecache服务没启动吧?
7 楼 we_sky 2011-12-16  
6 楼 wasw100 2011-08-12  
Bean property 'compressEnable' is not writable or has an invalid setter method
5 楼 diandian 2011-03-26  
hi lveyo.
我采用你这样的方式来做,但程序有时会提示:com.schooner.MemCached.SchoonerSockIOPool Sat Mar 26 17:57:41 GMT+08:00 2011 - attempting to get SockIO from uninitialized pool!
不知你那里有没有遇到过,如果知道解决办法,请赐教.
多谢!
4 楼 lveyo 2011-03-04  
diandian 写道
for(int i=0; i<100; i++){ 
             //try{Thread.sleep(2000);}catch(Exception e){} 
             mc.set("keya"+i, "value"+i); 

try{Thread.sleep(5000);}catch(Exception e){} 
for(int i=0; i<100; i++){ 
System.out.println("get "+i+" value "+mc.get("key"+i)); 

大哥,你取的KEY不对哦。
但还是要谢谢分享!


改过来了!谢谢提醒!
3 楼 diandian 2011-03-01  
for(int i=0; i<100; i++){ 
             //try{Thread.sleep(2000);}catch(Exception e){} 
             mc.set("keya"+i, "value"+i); 

try{Thread.sleep(5000);}catch(Exception e){} 
for(int i=0; i<100; i++){ 
System.out.println("get "+i+" value "+mc.get("key"+i)); 

大哥,你取的KEY不对哦。
但还是要谢谢分享!
2 楼 fangzhouxing 2009-03-01  
自己解答:端口号应该为 11211!
1 楼 fangzhouxing 2009-03-01  
出现下列错误:

[DEBUG,danga.MemCached.SockIOPool] ++++ initializing pool with following settings:
[DEBUG,danga.MemCached.SockIOPool] ++++ initial size: 20
[DEBUG,danga.MemCached.SockIOPool] ++++ min spare   : 10
[DEBUG,danga.MemCached.SockIOPool] ++++ max spare   : 50
[DEBUG,danga.MemCached.SockIOPool] ++++ initializing internal hashing structure for consistent hashing
[DEBUG,danga.MemCached.SockIOPool] ++++ added 127.0.0.1:12111 to server bucket
[DEBUG,danga.MemCached.SockIOPool] +++ creating initial connections (20) for host: 127.0.0.1:12111
[ERROR,danga.MemCached.SockIOPool] ++++ failed to get SockIO obj for: 127.0.0.1:12111
[ERROR,danga.MemCached.SockIOPool] Connection refused: no further information
java.net.ConnectException: Connection refused: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100)
at com.danga.MemCached.SockIOPool$SockIO.getSocket(SockIOPool.java:1612)
at com.danga.MemCached.SockIOPool$SockIO.<init>(SockIOPool.java:1585)
at com.danga.MemCached.SockIOPool.createSocket(SockIOPool.java:782)
at com.danga.MemCached.SockIOPool.populateBuckets(SockIOPool.java:671)
at com.danga.MemCached.SockIOPool.initialize(SockIOPool.java:634)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:236)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:222)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:286)
at com.google.gwt.dev.HostedMode.doStartUpServer(HostedMode.java:367)
at com.google.gwt.dev.HostedModeBase.startUp(HostedModeBase.java:588)
at com.google.gwt.dev.HostedModeBase.run(HostedModeBase.java:395)
at com.google.gwt.dev.HostedMode.main(HostedMode.java:232)
[DEBUG,danga.MemCached.SockIOPool] ++++ ignoring dead host: 127.0.0.1:12111 for 1000 ms
[ERROR,danga.MemCached.SockIOPool] ++++ failed to create connection to: 127.0.0.1:12111 -- only 0 created.
[DEBUG,danga.MemCached.SockIOPool] ++++ Starting self maintenance....
[DEBUG,danga.MemCached.SockIOPool] +++ ending self maintenance.
[DEBUG,danga.MemCached.SockIOPool] ++++ Starting self maintenance....

相关推荐

    Spring_Memcached:使用与Spring集成的Memcached

    使用Spring Boot进行Memcached为什么要使用Memcached?您是否正在为每个事务与数据库进行交互? 然后,您必须应用缓存机制,以避免多次数据库调用和更快的响应。一个免费的开源内存中缓存系统,可通过减少数据库负载...

    java开源包1

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    spring_mem_plugin:Spring的缓存插件,使用annotation方式和spring的aop编程让缓存业务更加方便和解耦,主要面向memcached

    顾名思义是基于spring和memcached的一个插件,该插件目前实现了memcached的查询缓存,利用java的annotation方式和spring的AOP切面编程使得我们在业务层获得缓存数据非常的方便 ##开始使用 首先你必须实现CacheSupport...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java开源包8

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包101

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包11

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包6

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包9

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包5

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包10

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包3

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包2

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    java开源包7

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    Java资源包01

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    阿里ocs客户端与spring集成,生命周期由spring管理

    两个都可用,但xmc可以交由spring管理client对象的生命周期,而spymc却是spring能创建但无法关闭,研究结果为:用xmc来做客户端,需注意的地方就是spring配置文件中要使用:plain和BinaryCommandFactory。...

Global site tag (gtag.js) - Google Analytics