diff options
author | antirez <antirez@gmail.com> | 2015-12-14 18:14:52 +0100 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2015-12-14 18:14:52 +0100 |
commit | 3782902bec9c9856d47833a799aca42c62b3cc8b (patch) | |
tree | f2d5469eba45ccfd132536e88d2b15fa170a5528 /src/redis-trib.rb | |
parent | 9f63e75a07e73f40fec72ef83545f6e7f0438e90 (diff) | |
download | redis-3782902bec9c9856d47833a799aca42c62b3cc8b.tar.gz |
Initial implementation of redis-trib info subcommand.
Diffstat (limited to 'src/redis-trib.rb')
-rwxr-xr-x | src/redis-trib.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/redis-trib.rb b/src/redis-trib.rb index 74f3e214e..5a19adae7 100755 --- a/src/redis-trib.rb +++ b/src/redis-trib.rb @@ -334,6 +334,22 @@ class RedisTrib check_slots_coverage end + def show_cluster_info + masters = 0 + keys = 0 + @nodes.each{|n| + if n.has_flag?("master") + puts "#{n} -> #{n.r.dbsize} keys | #{n.slots.length} slots | "+ + "#{n.info[:replicas].length} slaves." + masters += 1 + keys += n.r.dbsize + end + } + xputs "[OK] #{keys} keys in #{masters} masters." + keys_per_slot = sprintf("%.2f",keys/16384.0) + puts "#{keys_per_slot} keys per slot on average." + end + # Merge slots of every known node. If the resulting slots are equal # to ClusterHashSlots, then all slots are served. def covered_slots @@ -850,6 +866,11 @@ class RedisTrib check_cluster end + def info_cluster_cmd(argv,opt) + load_cluster_info_from_node(argv[0]) + show_cluster_info + end + def fix_cluster_cmd(argv,opt) @fix = true @timeout = opt['timeout'].to_i if opt['timeout'] @@ -1339,6 +1360,7 @@ end COMMANDS={ "create" => ["create_cluster_cmd", -2, "host1:port1 ... hostN:portN"], "check" => ["check_cluster_cmd", 2, "host:port"], + "info" => ["info_cluster_cmd", 2, "host:port"], "fix" => ["fix_cluster_cmd", 2, "host:port"], "reshard" => ["reshard_cluster_cmd", 2, "host:port"], "add-node" => ["addnode_cluster_cmd", 3, "new_host:new_port existing_host:existing_port"], |