mirror of
https://github.com/fluencelabs/redis
synced 2025-03-30 22:31:03 +00:00
redis-trib cluster check command: check that all the 4096 slots are covered
This commit is contained in:
parent
0cae060a26
commit
f639f99180
@ -26,6 +26,14 @@ class ClusterNode
|
|||||||
@friends = []
|
@friends = []
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def friends
|
||||||
|
@friends
|
||||||
|
end
|
||||||
|
|
||||||
|
def slots
|
||||||
|
@slots
|
||||||
|
end
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
"#{@host}:#{@port}"
|
"#{@host}:#{@port}"
|
||||||
end
|
end
|
||||||
@ -187,6 +195,16 @@ class RedisTrib
|
|||||||
def check_cluster
|
def check_cluster
|
||||||
puts "Performing Cluster Check (using node #{@nodes[0]})"
|
puts "Performing Cluster Check (using node #{@nodes[0]})"
|
||||||
show_nodes
|
show_nodes
|
||||||
|
# Check if all the slots are covered
|
||||||
|
slots = {}
|
||||||
|
@nodes.each{|n|
|
||||||
|
slots = slots.merge(n.slots)
|
||||||
|
}
|
||||||
|
if slots.length == 4096
|
||||||
|
puts "[OK] All 4096 slots covered."
|
||||||
|
else
|
||||||
|
puts "[ERR] Not all 4096 slots are covered by nodes."
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def alloc_slots
|
def alloc_slots
|
||||||
@ -241,8 +259,14 @@ class RedisTrib
|
|||||||
node = ClusterNode.new(ARGV[1])
|
node = ClusterNode.new(ARGV[1])
|
||||||
node.connect(:abort => true)
|
node.connect(:abort => true)
|
||||||
node.assert_cluster
|
node.assert_cluster
|
||||||
node.load_info
|
node.load_info(:getfriends => true)
|
||||||
add_node(node)
|
add_node(node)
|
||||||
|
node.friends.each{|f|
|
||||||
|
fnode = ClusterNode.new(f[:addr])
|
||||||
|
fnode.connect()
|
||||||
|
fnode.load_info()
|
||||||
|
add_node(fnode)
|
||||||
|
}
|
||||||
check_cluster
|
check_cluster
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user