lib/nutcracker.rb
# Returns hash with information about a given Redis
Returns hash with information about a given Redis
Returns hash with information about a given Redis
def redis_info url, password
      begin
        r = Redis.new url: url, password: password
        info = r.info.merge 'dbsize' => r.dbsize
      rescue Exception => e
        STDERR.puts "[ERROR][#{__FILE__}:#{__LINE__}] Failed to get data from Redis - " +
          "#{url.inspect} (using password #{password.inspect}): #{e.message}\n#{e.backtrace.join("\n")}"
        return {}
      end
      begin
        info['maxmemory'] = @options.fetch(:max_memory) { r.config(:get, 'maxmemory')['maxmemory'] }
      rescue Exception
        info['maxmemory'] = info['used_memory_rss']
      end
      r.quit
      {
        'connections'     => info['connected_clients'].to_i,
        'used_memory'     => info['used_memory'].to_f,
        'used_memory_rss' => info['used_memory_rss'].to_f,
        'fragmentation'   => info['mem_fragmentation_ratio'].to_f,
        'expired_keys'    => info['expired_keys'].to_i,
        'evicted_keys'    => info['evicted_keys'].to_i,
        'hits'            => info['keyspace_hits'].to_i,
        'misses'          => info['keyspace_misses'].to_i,
        'keys'            => info['dbsize'].to_i,
        'max_memory'      => info['maxmemory'].to_i,
        'hit_ratio'       => 0
      }.tap {|d| d['hit_ratio'] = d['hits'].to_f / (d['hits']+d['misses']).to_f if d['hits'] > 0 }
    end
def redis_info url , password begin r = Redis . new url : url , password : password info = r . info . merge 'dbsize' => r . dbsize rescue Exception => e STDERR . puts "[ERROR][#{__FILE__}:#{__LINE__}] Failed to get data from Redis - " + "#{url.inspect} (using password #{password.inspect}): #{e.message}\n#{e.backtrace.join("\n")}" return { } end begin info [ 'maxmemory' ] = @options . fetch ( :max_memory ) { r . config ( :get , 'maxmemory' ) [ 'maxmemory' ] } rescue Exception info [ 'maxmemory' ] = info [ 'used_memory_rss' ] end r . quit { 'connections' => info [ 'connected_clients' ] . to_i , 'used_memory' => info [ 'used_memory' ] . to_f , 'used_memory_rss' => info [ 'used_memory_rss' ] . to_f , 'fragmentation' => info [ 'mem_fragmentation_ratio' ] . to_f , 'expired_keys' => info [ 'expired_keys' ] . to_i , 'evicted_keys' => info [ 'evicted_keys' ] . to_i , 'hits' => info [ 'keyspace_hits' ] . to_i , 'misses' => info [ 'keyspace_misses' ] . to_i , 'keys' => info [ 'dbsize' ] . to_i , 'max_memory' => info [ 'maxmemory' ] . to_i , 'hit_ratio' => 0 } . tap { | d | d [ 'hit_ratio' ] = d [ 'hits' ] . to_f / ( d [ 'hits' ] + d [ 'misses' ] ) . to_f if d [ 'hits' ] > 0 } end
Returns hash with information about a given Redis
Returns hash with information about a given Redis
url
<not_specific>
password
<not_specific>