Module: Lowkiq::Script
- Defined in:
- lib/lowkiq/script.rb
Constant Summary collapse
- ALL =
{ hmove: " local source = KEYS[1]\n local destination = KEYS[2]\n local key = ARGV[1]\n local value = redis.call('hget', source, key)\n if value then\n redis.call('hdel', source, key)\n redis.call('hset', destination, key, value)\n end\n LUA\n zremhset: <<-LUA\n local source = KEYS[1]\n local destination = KEYS[2]\n local member = ARGV[1]\n local score = redis.call('zscore', source, member)\n if score then\n redis.call('zrem', source, member)\n redis.call('hset', destination, member, score)\n end\n LUA\n}.transform_values { |v| { sha: Digest::SHA1.hexdigest(v), source: v } }.freeze\n",
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 |