private function get_redis_summary($server_descriptors, $promise_only = false) { $servers = array(); foreach ($server_descriptors as $i) { foreach ($i['servers'] as $host_port) { if (!isset($servers[$host_port])) { $servers[$host_port] = array('password' => $i['password'], 'dbid' => $i['dbid'], 'module_names' => array($i['name'])); } else { $servers[$host_port]['module_names'][] = $i['name']; } } } $summary = array(); foreach ($servers as $host_port => $i) { $cache = Cache::instance('redis', array('servers' => array($host_port), 'password' => $i['password'], 'dbid' => $i['dbid'])); if ($promise_only) { $stats = array(); } else { $stats = $cache->get_statistics(); } if (isset($stats['keyspace_hits']) && $stats['keyspace_misses']) { $stats['_keyspace_total'] = (int) $stats['keyspace_hits'] + (int) $stats['keyspace_misses']; } $id = md5($host_port); $summary[$id] = array('name' => $host_port, 'module_names' => $i['module_names'], 'size_used' => Util_UsageStatistics::bytes_to_size2($stats, 'used_memory'), 'hit_rate' => Util_UsageStatistics::percent2($stats, 'keyspace_hits', '_keyspace_total'), 'expirations_per_second' => Util_UsageStatistics::value_per_second($stats, 'expired_keys', 'uptime_in_seconds'), 'evictions_per_second' => Util_UsageStatistics::value_per_second($stats, 'evicted_keys', 'uptime_in_seconds')); } return $summary; }