class Redis::ImpendingCrossSlotError
Captures the details from a potential CROSSSLOT error as identified by Redis::KeyHash.all_in_one_slot!
.
Generally, this indicates we were about to risk a Redis
operation which is likely to produce a Redis
error result like:
(error) CROSSSLOT Keys in request don't hash to the same slot
TODO: rdoc
Redis::ImpendingCrossSlotError
is a Redis::CommandError
because the intention is to use Redis::KeyHash.all_in_one_slot!
as a filter in front of Redis#eval, which will raise a Redis::CommandError
when redis-server returns a CROSSSLOT error.
Attributes
keys[RW]
namespace[RW]
namespaced_keys[RW]
problems[RW]
Public Class Methods
new(namespace,keys,namespaced_keys,problems)
click to toggle source
Calls superclass method
# File lib/redis/impending_cross_slot_error.rb, line 35 def initialize(namespace,keys,namespaced_keys,problems) err = "CROSSSLOT" err += " namespace=#{namespace.inspect}" err += " keys=#{keys.inspect}" err += " namespaced_keys=#{namespaced_keys.inspect}" err += " problems=#{problems.inspect}" super(err) @namespace = namespace ? namespace.dup.freeze : nil @keys = keys.dup.freeze @namespaced_keys = namespaced_keys.dup.freeze @problems = problems.dup.freeze end