Sha256: 445866dc536399cc5b884e584bca3b218c550920f4b1f8ad23b53e3849df214f
Contents?: true
Size: 1.23 KB
Versions: 5
Compression:
Stored size: 1.23 KB
Contents
redis-lock ========== Requires the redis gem. Including this in your project will give you additional locking abilities on any instance of a redis connection you create. Installation ------------ gem install redis-lock Usage ----- require 'redis' require 'redis-lock # This will automatically include Lock into the Redis class. Here's a little example of what you can do with it: timeout = 10 # measured in seconds max_attempts = 100 # number of times the action will attempt to lock the key before raising an exception $redis = Redis.new $redis.lock('beers_on_the_wall', timeout, max_attempts) # Now no one can acquire a lock on 'beers_on_the_wall' $redis.unlock('beers_on_the_wall') # Other processes can now acquire a lock on 'beers_on_the_wall' For convenience, there is also a `lock_with_update` function that accepts a block. It handles the locking and unlocking for you. $redis.lock_for_update('beers_on_the_wall') do $redis.multi do $redis.set('sing', 'take one down, pass it around.') $redis.decr('beers_on_the_wall') end end Additional Notes ---------------- This gem basically implements the algorithm described here: http://redis.io/commands/setnx Author ------ Patrick Tulskie; http://patricktulskie.com
Version data entries
5 entries across 5 versions & 2 rubygems
Version | Path |
---|---|
redis-lock-0.2.0 | README.md |
redis-lock-0.1.2 | README.md |
redis-lock-0.1.1 | README.md |
jashmenn-redis-lock-0.1.1 | README.md |
redis-lock-0.1.0 | README.md |