Module: Redis::Commands::Transactions
- Included in:
- Redis::Commands
- Defined in:
- lib/redis/commands/transactions.rb
Instance Method Summary collapse
-
#discard ⇒ String
Discard all commands issued after MULTI.
-
#exec ⇒ nil, Array<...>
Execute all commands issued after MULTI.
-
#unwatch ⇒ String
Forget about all watched keys.
-
#watch(*keys) ⇒ Object, String
Watch the given keys to determine execution of the MULTI/EXEC block.
Instance Method Details
#discard ⇒ String
Discard all commands issued after MULTI.
Only call this method when ‘#multi` was called without a block.
87 88 89 |
# File 'lib/redis/commands/transactions.rb', line 87 def discard send_command([:discard]) end |
#exec ⇒ nil, Array<...>
Execute all commands issued after MULTI.
Only call this method when ‘#multi` was called without a block.
75 76 77 |
# File 'lib/redis/commands/transactions.rb', line 75 def exec send_command([:exec]) end |
#unwatch ⇒ String
Forget about all watched keys.
61 62 63 |
# File 'lib/redis/commands/transactions.rb', line 61 def unwatch send_command([:unwatch]) end |
#watch(*keys) ⇒ Object, String
Watch the given keys to determine execution of the MULTI/EXEC block.
Using a block is optional, but is necessary for thread-safety.
An ‘#unwatch` is automatically issued if an exception is raised within the block that is a subclass of StandardError and is not a ConnectionError.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/redis/commands/transactions.rb', line 36 def watch(*keys) synchronize do |client| res = client.call([:watch, *keys]) if block_given? begin yield(self) rescue ConnectionError raise rescue StandardError unwatch raise end else res end end end |