45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:Redis如何实现分布式全局锁?

Redis如何实现分布式全局锁?

2016-09-01 19:58:42 来源:www.45fan.com 【

Redis如何实现分布式全局锁?

本文地址:http://blog.csdn.net/wangjia184/article/details/20642331

 

利用Redis实现多服务器多进程环境下的分布式全局锁

 

首先调用 INCR并检测返回值,如果等于1就表示获得了锁

然后EXPIRE设置此Key的过期时间,

然后开始进行操作,

当操作完成后DEL删除这个KEY

伪代码如下

if( INCR( 'EXCLUSION_COUNT' ) == 1 )
{
   EXPIRE(60) // set ttl for 1 minute
  
   // DO some work

   DEL( 'EXCLUSION_COUNT' )}
}

这里的 EXPIRE(60) 表示我们假定接下来的操作一定会在1分钟内完成。需要根据实际情况调整这个值.
如果当前获得了锁的进程或者机器在执行过程中崩溃了,其它进程或者机器也能在1分钟后重新获得锁执行。

 

如果处理的过程是一个不确定执行时间的过程,可以每隔一段时间renew一下这个KEY, 比如

if( INCR( 'EXCLUSION_COUNT' ) == 1 )
{
   

   for(...){
      EXPIRE(60) // set ttl for 1 minute

      // DO some work
   }

   DEL( 'EXCLUSION_COUNT' )
}
 
 
本文地址:http://blog.csdn.net/wangjia184/article/details/20642331

 

本文地址:http://www.45fan.com/a/question/70972.html
Tags: 实现 Redis 全局
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部