memcache java分布式_Memcache分布式锁

//引用

usingMemcached.ClientLibrary;namespaceMemcache.AddLock

{public classMemcacheHelper

{//实例化Client

publicMemcachedClient MClient;publicMemcacheHelper()

{//参数设置

string SockIOPoolName = "demo";string[] MemcacheServiceList = { "127.0.0.1:11211"};//设置连接池

SockIOPool SPool =SockIOPool.GetInstance(SockIOPoolName);

SPool.SetServers(MemcacheServiceList);

SPool.Initialize();

MClient= newMemcachedClient();

MClient.PoolName=SockIOPoolName;//是否启用压缩数据:如果启用了压缩,数据压缩长于门槛的数据将被储存在压缩的形式

MClient.EnableCompression = false;压缩设置,超过指定大小的都压缩

//MClient.CompressionThreshold = 1024 * 1024;

}///

///根据key存储对象///

///

///

///

public bool Set(string key, objectvalue)

{var result =MClient.Set(key, value);returnresult;

}///

///根据key存储对象,并且设置过期时间///

///

///

///

///

public bool Set(string key, objectvalue, DateTime timeOut)

{var result =MClient.Set(key, value, timeOut);returnresult;

}///

///根据key获取对应的对象///

///

///

public object Get(stringkey)

{var result =MClient.Get(key);returnresult;

}///

///替换对应key的value///

///

///

///

public bool Replace(string key, objectvalue)

{var result =MClient.Replace(key, value);returnresult;

}///

///删除对应key///

///

///

public bool Delete(stringkey)

{returnMClient.Delete(key);

}///

///删除对应key,并设置从内存中移除的时间点///

///

///

///

public bool Delete(stringkey, DateTime timeOut)

{returnMClient.Delete(key, timeOut);

}///

///判断key是否存在,存在返回true,不存在返回false///

///

///

public bool KeyExists(stringkey)

{returnMClient.KeyExists(key);

}///

///Memcache分布式锁///

///

///

/// 当key存在返回false,当key不存在返回true

public bool Add(string key, objectvalue)

{returnMClient.Add(key, value);

}///

///Memcache分布式锁,并且设置过期时间///Memcached分布式锁可以使用 Add 命令,该命令只有KEY不存在时,才进行添加,否则不会处理。Memcached 所有命令都是原子性的,并发下add 同一个KEY,只会一个会成功。///利用这个原理,可以先定义一个锁 LockKEY,Add 成功的认为是得到锁。并且设置[过期超时] 时间,保证宕机后,也不会死锁。///在完成具体操作后,判断锁 LockKEY 是否已超时。如果超时则不删除锁,如果不超时则 Delete 删除锁。///

///

///

///

/// 当key存在返回false,当key不存在返回true

public bool Add(string key, objectvalue, DateTime timeOut)

{returnMClient.Add(key, value, timeOut);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值