@if (!current) {
hourglass_empty {{ strings().label?.loading || 'Loading...' }}
} @if (current) {
Redis {{ current.server.version }} · {{ current.server.mode }}
{{ uptimeFormatted }}
{{ strings().page?.monitor?.memory || 'Memory' }}
{{ current.memory.usedHuman }}
{{ strings().page?.monitor?.rss || 'RSS' }}
{{ current.memory.rssHuman }}
{{ strings().page?.monitor?.peak || 'Peak' }}
{{ current.memory.peakHuman }}
{{ strings().page?.monitor?.fragmentation || 'Fragmentation' }}
{{ current.memory.fragRatio }}x
{{ strings().page?.monitor?.opsPerSec || 'Ops/sec' }}
{{ current.stats.opsPerSec }}
{{ strings().page?.monitor?.totalCommands || 'Total Commands' }}
{{ current.stats.totalCommands }}
{{ strings().page?.monitor?.clients || 'Clients' }}
{{ current.clients.connected }}
{{ strings().page?.monitor?.blocked || 'Blocked' }}
{{ current.clients.blocked }}
{{ strings().page?.monitor?.hitsMisses || 'Hit Rate' }}
{{ current.stats.hitRate }}%
{{ strings().page?.monitor?.hitsAndMisses || 'Hits / Misses' }}
{{ current.stats.hits }} / {{ current.stats.misses }}
{{ strings().page?.monitor?.networkIo || 'Network I/O' }}
{{ current.stats.inputKbps | number:'1.1-1' }} / {{ current.stats.outputKbps | number:'1.1-1' }} KB/s
{{ strings().page?.monitor?.expired || 'Expired' }}
{{ current.stats.expiredKeys }}
{{ strings().page?.monitor?.evicted || 'Evicted' }}
{{ current.stats.evictedKeys }}
@if (serverInfo) {
@if (serverInfo.os) {
{{ strings().page?.monitor?.os || 'OS' }}
{{ serverInfo.os }}
} @if (serverInfo.port) {
{{ strings().page?.monitor?.port || 'Port' }}
{{ serverInfo.port }}
} @if (serverInfo.pid) {
{{ strings().page?.monitor?.pid || 'Process ID' }}
{{ serverInfo.pid }}
} @if (serverInfo.configFile) {
{{ strings().page?.monitor?.configFile || 'Config File' }}
{{ serverInfo.configFile }}
}
{{ strings().page?.monitor?.cpuSys || 'System' }} CPU
{{ serverInfo.cpuSys }}
{{ strings().page?.monitor?.cpuUser || 'User' }} CPU
{{ serverInfo.cpuUser }}
} @if (persistenceInfo) {
{{ strings().page?.monitor?.rdbLastSave || 'RDB Last Save' }}
{{ persistenceInfo.rdbLastSave }}
{{ strings().page?.monitor?.rdbStatus || 'RDB Status' }}
{{ persistenceInfo.rdbStatus }}
{{ strings().page?.monitor?.rdbChanges || 'Changes Since Last Save' }}
{{ persistenceInfo.rdbChanges }}
{{ strings().page?.monitor?.aofEnabled || 'AOF Enabled' }}
{{ persistenceInfo.aofEnabled }}
@if (persistenceInfo.aofSize) {
{{ strings().page?.monitor?.aofSize || 'AOF Size' }}
{{ persistenceInfo.aofSize }}
}
} @if (replicationInfo) {
{{ strings().page?.monitor?.role || 'Role' }}
{{ replicationInfo.role }}
@if (replicationInfo.replicas !== undefined) {
{{ strings().page?.monitor?.replicas || 'Connected Replicas' }}
{{ replicationInfo.replicas }}
} @if (replicationInfo.masterHost) {
{{ strings().page?.monitor?.masterHost || 'Master Host' }}
{{ replicationInfo.masterHost }}:{{ replicationInfo.masterPort }}
} @if (replicationInfo.linkStatus) {
{{ strings().page?.monitor?.linkStatus || 'Link Status' }}
{{ replicationInfo.linkStatus }}
}
} @if (keyspaceEntries.length > 0) {
@for (entry of keyspaceEntries; track entry.db; let last = $last) {
{{ entry.db }}
{{ strings().page?.monitor?.keys || 'Keys' }}: {{ entry.keys }} · {{ strings().page?.monitor?.expires || 'Expires' }}: {{ entry.expires }}
@if (!last) { } }
}
@if (modulesList.length === 0) {
{{ strings().page?.monitor?.noModules || 'No modules loaded' }}
} @if (modulesList.length > 0) { @for (mod of modulesList; track mod.name; let last = $last) {
{{ mod.name }}
v{{ mod.ver }}
@if (!last) { } }
}





@if (!isReadonly) { }
@if (current.slowlog.length === 0) {
{{ strings().page?.monitor?.noSlowQueries || 'No slow queries recorded' }}
} @for (entry of current.slowlog; track entry.id) {
{{ entry.duration }}µs {{ entry.command }}
}

@if (!autoRefreshClients) { }
@if (clientList.length === 0 && clientListLoaded) {
{{ strings().page?.monitor?.noClients || 'No clients' }}
} @if (clientList.length === 0 && !clientListLoaded) {
{{ strings().label?.loading || 'Loading...' }}
} @if (clientList.length > 0) { @for (client of clientList; track client.id) {
{{ client.addr }} @if (client.name) { ({{ client.name }}) } db{{ client.db }} · {{ client.cmd }} · {{ client.idle }}s @if (!isReadonly) { close }
}
}

@if (!autoRefreshTopKeys) { }
@if (topKeys.length === 0 && topKeysLoaded) {
{{ strings().page?.monitor?.noKeys || 'No keys' }}
} @if (topKeys.length === 0 && !topKeysLoaded) {
{{ strings().label?.loading || 'Loading...' }}
} @if (topKeys.length > 0) { @for (entry of topKeys; track entry.key; let i = $index) {
#{{ i + 1 }} {{ entry.key }}
{{ formatBytes(entry.bytes) }}
}
}
@if (isCluster && state.redisVersion().isAtLeast(8, 2)) {
Metric
@if (slotStats.length === 0 && slotStatsLoaded) {
No slot data
} @if (slotStats.length > 0) { @for (entry of slotStats; track entry.slot; let i = $index) {
#{{ i + 1 }} Slot {{ entry.slot }}
@if (slotStatsMetric === 'KEY-COUNT') { {{ entry['key-count'] }} keys } @if (slotStatsMetric === 'CPU-USEC') { {{ entry['cpu-usec'] }} μs } @if (slotStatsMetric === 'MEMORY-BYTES') { {{ formatBytes(entry['memory-bytes']) }} }
}
}
} @if (isCluster) {
@if (!autoRefreshShards) { }
@if (!clusterShards) {
{{ strings().page?.monitor?.noClusterData || 'No cluster data available' }}
} @else { @for (shard of clusterShards; track shard.master.id) {
{{ shard.master.host }}:{{ shard.master.port }} {{ formatSlotRanges(shard) }}
{{ getSlotCount(shard) }} {{ strings().page?.monitor?.totalSlots || 'slots' }} @if (shard.replicas.length > 0) { ({{ formatReplicas(shard) }}) }
}
16384 slots across {{ clusterShards.length }} masters
}
} }