Module: Lowkiq::Script
- Defined in:
- lib/lowkiq/script.rb
Constant Summary collapse
- ALL =
{ hmove: <<-LUA, zremhset: <<-LUA local source = KEYS[1] local destination = KEYS[2] local member = ARGV[1] local score = redis.call('zscore', source, member) if score then redis.call('zrem', source, member) redis.call('hset', destination, member, score) end LUA }.transform_values { |v| { sha: Digest::SHA1.hexdigest(v), source: v } }.freeze
Class Method Summary collapse
- .hmove(redis, source, destination, key) ⇒ Object
- .load!(redis) ⇒ Object
- .zremhset(redis, source, destination, member) ⇒ Object
Class Method Details
.hmove(redis, source, destination, key) ⇒ Object
34 35 36 |
# File 'lib/lowkiq/script.rb', line 34 def hmove(redis, source, destination, key) redis.evalsha ALL[:hmove][:sha], keys: [source, destination], argv: [key] end |
.load!(redis) ⇒ Object
28 29 30 31 32 |
# File 'lib/lowkiq/script.rb', line 28 def load!(redis) ALL.each do |_, item| redis.script(:load, item[:source]) end end |
.zremhset(redis, source, destination, member) ⇒ Object
38 39 40 |
# File 'lib/lowkiq/script.rb', line 38 def zremhset(redis, source, destination, member) redis.evalsha ALL[:zremhset][:sha], keys: [source, destination], argv: [member] end |