class Redic::Cluster

Attributes

debug[RW]
node[R]
url[R]

Public Class Methods

new(url="redis://localhost:12001", timeout=10_000_000) click to toggle source
# File lib/redic/cluster.rb, line 8
def initialize(url="redis://localhost:12001", timeout=10_000_000)
  @url   = url
  @node  = Redic.new(url, timeout)
  @debug = false
end

Public Instance Methods

call(*args) click to toggle source
# File lib/redic/cluster.rb, line 14
def call(*args)
  res = @node.call(*args)

  return res unless res.is_a?(RuntimeError)

  parts = res.message.split

  if parts.first == "MOVED"
    slot, addr = parts[1,2]

    $stderr.puts "-> Redirected to slot [#{slot}] located at #{addr}" if @debug

    @node.call("QUIT")

    @node = Redic.new("redis://#{addr}", @node.timeout)

    call(*args)
  else
    res
  end
end
Also aliased as: call!
call!(*args)
Alias for: call
commit() click to toggle source
# File lib/redic/cluster.rb, line 42
def commit
  @node.commit
end
queue(*args) click to toggle source
# File lib/redic/cluster.rb, line 38
def queue(*args)
  @node.queue(*args)
end