场景:使用node+mongo搭建web应用时,常常遇到并发问题导致创建一条数据的时候会同时创建多条。
通过redis set 方法 配合 ‘NX’ 选项即可实现锁机制。
主要的方法有三个:
1 | Redlock.prototype.lock = function(resource,ttl,callback){ |
1 | Redlock.prototype.unlock = function(lock,callback){ |
1 | Redlock.prototype.extend = function(lock,ttl,callback){ |
用法
1 | var client = require('redis').createClient('port','host'); |
PS:支持callback and promise.
实现比较简单,100行内,有兴趣的可以在 这里https://github.com/navyxie/redlock-node 查看源码