python 实现 redis 分布式锁
2017-07-28 18:09
204 查看
from contextlib import contextmanager from random import random DEFAULT_EXPIRES = 15 DEFAULT_RETRIES = 5 @contextmanager def dist_lock(key, client): key = 'lock_%s' % key try: t = _acquire_lock(key, client) yield t finally: _release_lock(key, client) def ask_lock(key,client): key = 'lock_%s' % key if client.get(key): return True else: return False def _acquire_lock(key, client): while 1: get_stored = client.get(key) if get_stored: time.sleep(0.03) else: if client.setnx(key, 1): client.expire(key,DEFAULT_EXPIRES) return True return False def _release_lock(key, client): client.delete(key)
可以直接 pip install redis_netlock
出自 :https://github.com/rfyiamcool/redis_netlock
相关文章推荐
- 基于Python+scrapy+redis的分布式爬虫实现框架
- Python 用Redis简单实现分布式爬虫的方法
- 基于Python,scrapy,redis的分布式爬虫实现框架
- Python实现的redis分布式锁功能示例
- 基于Python使用scrapy-redis框架实现分布式爬虫 注
- 基于Python,scrapy,redis的分布式爬虫实现框架
- python实现redis分布式锁
- Python之Scrapy框架Redis实现分布式爬虫详解
- 分布式锁 分段锁 基于 memcached redis zookeeper (3种资源模式) 实现
- redis实现分布式锁 转自importnew 记录一下
- 高并发场景系列(一) 利用redis实现分布式事务锁,解决高并发环境下减库存
- Redis 分布式锁的正确实现方式( Java 版 )
- (转)分布式中使用Redis实现Session共享(一)
- Java实现基于Redis的分布式锁
- 使用 Redis 实现分布式锁(转载)
- 开源分布式搜索平台ELK+Redis+Syslog-ng实现日志实时搜索
- Redis 分布式锁的正确实现方式Java
- python实现redis三种cas事务操作
- python 实现redis 操作API 接口,提供其他程序调用
- tomcat+nginx 分布式集群 redis实现session共享