Class: TokyoTyrant::Balancer::Base
- Inherits:
-
Object
- Object
- TokyoTyrant::Balancer::Base
- Defined in:
- lib/tokyo_tyrant/balancer.rb
Instance Method Summary collapse
- #add_double(key, i = 1.0) ⇒ Object (also: #adddouble)
- #add_int(key, i = 1) ⇒ Object (also: #addint, #increment)
- #check(key) ⇒ Object (also: #has_key?, #key?, #include?, #member?)
-
#close ⇒ Object
Aggregate Methods.
- #db_for_key(key) ⇒ Object
- #delete_keys_with_prefix(prefix, max = -1)) ⇒ Object (also: #dfwmkeys)
- #empty? ⇒ Boolean
- #fetch(key, &block) ⇒ Object
- #fwmkeys(prefix, max = -1)) ⇒ Object
-
#get(key) ⇒ Object
(also: #[])
Delegate Methods.
- #get_double(key) ⇒ Object
- #get_int(key) ⇒ Object
-
#initialize(servers = [], weights = {}) ⇒ Base
constructor
A new instance of Base.
- #keys ⇒ Object
- #optimize(*args) ⇒ Object
- #out(key) ⇒ Object (also: #delete)
- #put(key, value) ⇒ Object (also: #[]=)
- #putcat(key, value) ⇒ Object
- #putkeep(key, value) ⇒ Object
- #putnr(key, value) ⇒ Object
- #putshl(key, value, width) ⇒ Object
- #ring ⇒ Object
- #rnum ⇒ Object (also: #count, #size, #length)
- #servers ⇒ Object
- #set_index(name, type) ⇒ Object
- #sync ⇒ Object
- #values ⇒ Object
- #vanish ⇒ Object (also: #clear)
- #vsiz(key) ⇒ Object
Constructor Details
#initialize(servers = [], weights = {}) ⇒ Base
Returns a new instance of Base.
8 9 10 11 12 13 14 15 16 |
# File 'lib/tokyo_tyrant/balancer.rb', line 8 def initialize(servers = [], weights = {}) servers.collect! do |server| host, port = server.split(':') klass.new(host, port.to_i) end @servers = servers # @ring = HashRing.new(servers, weights) @ring = FastHashRing.new(servers, weights) end |
Instance Method Details
#add_double(key, i = 1.0) ⇒ Object Also known as: adddouble
49 50 51 52 |
# File 'lib/tokyo_tyrant/balancer.rb', line 49 def add_double(key, i = 1.0) db = db_for_key(key) db.add_double(key, i) end |
#add_int(key, i = 1) ⇒ Object Also known as: addint, increment
37 38 39 40 |
# File 'lib/tokyo_tyrant/balancer.rb', line 37 def add_int(key, i = 1) db = db_for_key(key) db.add_int(key, i) end |
#check(key) ⇒ Object Also known as: has_key?, key?, include?, member?
131 132 133 |
# File 'lib/tokyo_tyrant/balancer.rb', line 131 def check(key) @servers.any?{ |server| server.check(key) } end |
#close ⇒ Object
Aggregate Methods
103 104 105 |
# File 'lib/tokyo_tyrant/balancer.rb', line 103 def close @servers.all?{ |server| server.close } end |
#db_for_key(key) ⇒ Object
26 27 28 |
# File 'lib/tokyo_tyrant/balancer.rb', line 26 def db_for_key(key) ring.get_node(key) end |
#delete_keys_with_prefix(prefix, max = -1)) ⇒ Object Also known as: dfwmkeys
147 148 149 150 |
# File 'lib/tokyo_tyrant/balancer.rb', line 147 def delete_keys_with_prefix(prefix, max = -1) @servers.each{ |server| server.delete_keys_with_prefix(prefix, max) } nil end |
#empty? ⇒ Boolean
114 115 116 |
# File 'lib/tokyo_tyrant/balancer.rb', line 114 def empty? @servers.all?{ |server| server.empty? } end |
#fetch(key, &block) ⇒ Object
91 92 93 94 |
# File 'lib/tokyo_tyrant/balancer.rb', line 91 def fetch(key, &block) db = db_for_key(key) db.fetch(key, &block) end |
#fwmkeys(prefix, max = -1)) ⇒ Object
143 144 145 |
# File 'lib/tokyo_tyrant/balancer.rb', line 143 def fwmkeys(prefix, max = -1) @servers.collect{ |server| server.fwmkeys(prefix, max) }.flatten end |
#get(key) ⇒ Object Also known as: []
Delegate Methods
31 32 33 34 |
# File 'lib/tokyo_tyrant/balancer.rb', line 31 def get(key) db = db_for_key(key) db.get(key) end |
#get_double(key) ⇒ Object
55 56 57 58 |
# File 'lib/tokyo_tyrant/balancer.rb', line 55 def get_double(key) db = db_for_key(key) db.get_double(key) end |
#get_int(key) ⇒ Object
44 45 46 47 |
# File 'lib/tokyo_tyrant/balancer.rb', line 44 def get_int(key) db = db_for_key(key) db.get_int(key) end |
#keys ⇒ Object
153 154 155 |
# File 'lib/tokyo_tyrant/balancer.rb', line 153 def keys @servers.collect{ |server| server.keys }.flatten.uniq end |
#optimize(*args) ⇒ Object
127 128 129 |
# File 'lib/tokyo_tyrant/balancer.rb', line 127 def optimize(*args) @servers.all?{ |server| server.optimize(*args) } end |
#out(key) ⇒ Object Also known as: delete
96 97 98 99 |
# File 'lib/tokyo_tyrant/balancer.rb', line 96 def out(key) db = db_for_key(key) db.out(key) end |
#put(key, value) ⇒ Object Also known as: []=
60 61 62 63 |
# File 'lib/tokyo_tyrant/balancer.rb', line 60 def put(key, value) db = db_for_key(key) db.put(key, value) end |
#putcat(key, value) ⇒ Object
71 72 73 74 |
# File 'lib/tokyo_tyrant/balancer.rb', line 71 def putcat(key, value) db = db_for_key(key) db.putcat(key, value) end |
#putkeep(key, value) ⇒ Object
66 67 68 69 |
# File 'lib/tokyo_tyrant/balancer.rb', line 66 def putkeep(key, value) db = db_for_key(key) db.putkeep(key, value) end |
#putnr(key, value) ⇒ Object
81 82 83 84 |
# File 'lib/tokyo_tyrant/balancer.rb', line 81 def putnr(key, value) db = db_for_key(key) db.putnr(key, value) end |
#putshl(key, value, width) ⇒ Object
76 77 78 79 |
# File 'lib/tokyo_tyrant/balancer.rb', line 76 def putshl(key, value, width) db = db_for_key(key) db.putshl(key, value, width) end |
#ring ⇒ Object
18 19 20 |
# File 'lib/tokyo_tyrant/balancer.rb', line 18 def ring @ring end |
#rnum ⇒ Object Also known as: count, size, length
107 108 109 |
# File 'lib/tokyo_tyrant/balancer.rb', line 107 def rnum @servers.collect{ |server| server.rnum }.inject(nil){ |sum,x| sum ? sum+x : x } end |
#servers ⇒ Object
22 23 24 |
# File 'lib/tokyo_tyrant/balancer.rb', line 22 def servers @servers end |
#set_index(name, type) ⇒ Object
139 140 141 |
# File 'lib/tokyo_tyrant/balancer.rb', line 139 def set_index(name, type) @servers.all?{ |server| server.set_index(name, type) } end |
#sync ⇒ Object
123 124 125 |
# File 'lib/tokyo_tyrant/balancer.rb', line 123 def sync @servers.each{ |server| server.sync } end |
#values ⇒ Object
157 158 159 |
# File 'lib/tokyo_tyrant/balancer.rb', line 157 def values @servers.collect{ |server| server.values }.flatten.uniq end |
#vanish ⇒ Object Also known as: clear
118 119 120 |
# File 'lib/tokyo_tyrant/balancer.rb', line 118 def vanish @servers.all?{ |server| server.vanish } end |
#vsiz(key) ⇒ Object
86 87 88 89 |
# File 'lib/tokyo_tyrant/balancer.rb', line 86 def vsiz(key) db = db_for_key(key) db.vsiz(key) end |