# File lib/memcache/server.rb, line 136 def add(key, value, expiry = 0, flags = 0) response = write_command("add #{cache_key(key)} #{flags.to_i} #{expiry.to_i} #{value.to_s.size}", value) response == "STORED\r\n" ? value : nil end
# File lib/memcache/server.rb, line 32 def alive? @retry_at.nil? or @retry_at < Time.now end
# File lib/memcache/server.rb, line 146 def append(key, value) response = write_command("append #{cache_key(key)} 0 0 #{value.to_s.size}", value) response == "STORED\r\n" end
# File lib/memcache/server.rb, line 131 def cas(key, value, cas, expiry = 0, flags = 0) response = write_command("cas #{cache_key(key)} #{flags.to_i} #{expiry.to_i} #{value.to_s.size} #{cas.to_i}", value) response == "STORED\r\n" ? value : nil end
# File lib/memcache/server.rb, line 20 def clone self.class.new(:host => host, :port => port, :strict_reads => strict_reads?) end
# File lib/memcache/server.rb, line 40 def close(error = nil) # Close the socket. If there is an error, mark the server dead. @socket.close if @socket and not @socket.closed? @socket = nil if error @retry_at = Time.now + READ_RETRY_DELAY @status = "DEAD: %s: %s, will retry at %s" % [error.class, error.message, @retry_at] else @retry_at = nil @status = "NOT CONNECTED" end end
# File lib/memcache/server.rb, line 70 def count stats['curr_items'] end
# File lib/memcache/server.rb, line 115 def decr(key, amount = 1) raise Error, "decr requires unsigned value" if amount < 0 response = write_command("decr #{cache_key(key)} #{amount}") response == "NOT_FOUND\r\n" ? nil : response.slice(0..-3).to_i end
# File lib/memcache/server.rb, line 121 def delete(key) write_command("delete #{cache_key(key)}") == "DELETED\r\n" ? true : nil end
# File lib/memcache/server.rb, line 74 def flush_all(delay = nil) write_command("flush_all #{delay}") end
# File lib/memcache/server.rb, line 78 def get(keys, cas = nil) return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array) return {} if keys.empty? method = cas ? 'gets' : 'get' results = {} keys = keys.collect {|key| cache_key(key)} read_command("#{method} #{keys.join(' ')}") do |response| if cas key, flags, length, cas = match_response!(response, /^VALUE ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+)/) else key, flags, length = match_response!(response, /^VALUE ([^\s]+) ([^\s]+) ([^\s]+)/) end value = socket.read(length.to_i) match_response!(socket.read(2), "\r\n") result = { :value => value, :flags => flags.to_i, } result[:cas] = cas if cas key = input_key(key) results[key] = result end results end
# File lib/memcache/server.rb, line 109 def incr(key, amount = 1) raise Error, "incr requires unsigned value" if amount < 0 response = write_command("incr #{cache_key(key)} #{amount}") response == "NOT_FOUND\r\n" ? nil : response.slice(0..-3).to_i end
# File lib/memcache/server.rb, line 24 def inspect "<#{self.class.name}: %s:%d (%s)>" % [@host, @port, @status] end
# File lib/memcache/server.rb, line 151 def prepend(key, value) response = write_command("prepend #{cache_key(key)} 0 0 #{value.to_s.size}", value) response == "STORED\r\n" end
# File lib/memcache/server.rb, line 141 def replace(key, value, expiry = 0, flags = 0) response = write_command("replace #{cache_key(key)} #{flags.to_i} #{expiry.to_i} #{value.to_s.size}", value) response == "STORED\r\n" ? value : nil end
# File lib/memcache/server.rb, line 125 def set(key, value, expiry = 0, flags = 0) return delete(key) if value.nil? write_command("set #{cache_key(key)} #{flags.to_i} #{expiry.to_i} #{value.to_s.size}", value) value end
# File lib/memcache/server.rb, line 54 def stats stats = {} read_command('stats') do |response| key, value = match_response!(response, /^STAT ([\w]+) (-?[\w\.\:]+)/) if ['rusage_user', 'rusage_system'].include?(key) seconds, microseconds = value.split(/:/, 2) microseconds ||= 0 stats[key] = Float(seconds) + (Float(microseconds) / 1_000_000) else stats[key] = (value =~ /^-?\d+$/ ? value.to_i : value) end end stats end
Generated with the Darkfish Rdoc Generator 2.