import java.util.Map; import java.util.Properties; import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; @Controller public class MemController { private AtomicInteger ai=new AtomicInteger(0); static { String[] serverlist = { "127.0.0.1:11211"}; SockIOPool pool = SockIOPool.getInstance(); pool.setServers(serverlist); pool.initialize(); } private static final Logger logger = LoggerFactory.getLogger(MemController.class); @RequestMapping(value = "/testMem", method = RequestMethod.GET) public void testMem(HttpServletRequest req,Model model) { MemCachedClient mc = new MemCachedClient(); String key="test"; boolean b = mc.add(key, "1", 60000); Integer object =null; if(b){ object = (Integer) mc.get("test_atomic"); if(object==null){ mc.set("test_atomic", 1); }else{ object=object+1; mc.set("test_atomic", object); } mc.delete(key); }else{ ai.getAndIncrement(); } System.out.println("--------------object:"+object+",error:"+ai.get()); } }
用ab测试了一遍,发现没有问题