`
cy729215495
  • 浏览: 127231 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

memcache分布式锁实现代码

阅读更多
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测试了一遍,发现没有问题

分享到:
评论

相关推荐

    memcache分布式缓存的使用

    主要讲述memcache分布式缓存的的配置使用

    thinkPHP实现MemCache分布式缓存功能

    本文实例讲述了thinkPHP实现MemCache分布式缓存功能。分享给大家供大家参考,具体如下: 两天在研究MemCache分布式缓存的问题时,发现ThinkPHP其实并不支持分布式缓存功能,这可以从官方提供的CacheMemcache.class....

    memcache分布式缓存操作类

    这是一个php的memcache操作类可以下载看一下

    memcache分布式一致性hash

    如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中,哈希的结果应能够保证原有已分配的内容可以被映射到新的缓冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区

    memcache缓存分布式集群

    利用magent代理memcache ,搭建memcache 缓存分布式集群

    memcache分布式的对象缓存系统

    高性能的分布式的对象缓存系统,是通过维护内存中一个巨大的hash表来实现数据缓存的一种操作

    PHP扩展Memcache分布式部署方案

    基础环境 其实基于PHP扩展的Memcache客户端实际上早已经实现,而且非常稳定。...最后,启动Memcache服务,比如这样,通过不同端口启动多个进程模拟分布式: 复制代码 代码如下:/usr/local/bin/memcached -d -p 112

    Java开发中的Memcache原理及实现

    Java开发中的Memcache原理及实现

    pals:使用PostgreSQL咨询锁轻松进行分布式锁

    可以通过使用Redis,Memcache,ZeroMQ等来实现分布式应用程序级别锁定。 但是对于那些已经在使用PostgreSQL人来说,无需其他服务的设置和管理。用法安装方式: pip install PALs然后用法如下: import datetime as ...

    C语言memcache代码文档

    C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档C语言memcache代码文档

    memcache配置源代码

    memcache配置源代码

    ThinkPHP 3.1.2 支持分布式 Memcache 缓存类库

    ThinkPHP 3.1.2 官方只能支持一台Memcache缓存,不支持多台分布式Memcache缓存,现在简单改一下官方缓存类库(CacheMemcache.class.php)源代码就可以了。 亲测可用,放心使用,分享万岁!

    C语言memcache代码2

    C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码

    Memcache原理及实现

    Java开发中的Memcache原理及实现

    C语言memcache代码

    C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码C语言memcache代码

    memcache 缓存 分布式

    很好配置的memcache,支持大型网站的缓存、支持分布式缓存

    Fourinone分布式计算框架

    FourInOne整体代码仅仅为70k,跟Hadoop, Zookeeper, Memcache, ActiveMq等开源产品代码上没有任何相似性,不需要任何依赖,引用一个jar包就可以嵌入式使用,良好支持window环境,可以在一台机器上模拟分布式环境,更...

    memcache实现网站全局计数器

    memcache实现网站全局计数器 xmemcache counter

Global site tag (gtag.js) - Google Analytics