/// <summary>
/// Lock
/// </summary>
/// <param name="lockKey">锁的关键字</param>
/// <param name="timeOut">超时时间秒</param>
/// <param name="action"></param>
public void Lock(string lockKey, int timeOut, Action action)
{
if (timeOut <= 0)
{
timeOut = DefineTimeout;
}
using (IRedisClient RClient = RedisBase.GetClient())
{
using (RClient.AcquireLock(lockKey, TimeSpan.FromSeconds(timeOut)))
{
action();
}
}
}
//事务案例
public void RedisTransaction()
{
using (IRedisClient RClient = RedisBase.GetClient())
{
RClient.Add("key", 1);
using (IRedisTransaction IRT = RClient.CreateTransaction())
{
IRT.QueueCommand(r => r.Set("key", 20));
IRT.QueueCommand(r => r.Increment("key", 1));
IRT.Commit(); // 提交事务
}
//Response.Write(RClient.Get<string>("key"));
}
}