@if (!current) {
hourglass_empty {{ strings().label?.loading }}
} @if (current) {
Redis {{ current.server.version }} · {{ current.server.mode }}
{{ uptimeFormatted }}
{{ strings().page?.monitor?.memory }}
{{ current.memory.usedHuman }}
{{ strings().page?.monitor?.rss }}
{{ current.memory.rssHuman }}
{{ strings().page?.monitor?.peak }}
{{ current.memory.peakHuman }}
{{ strings().page?.monitor?.fragmentation }}
{{ current.memory.fragRatio }}x
{{ strings().page?.monitor?.opsPerSec }}
{{ current.stats.opsPerSec }}
{{ strings().page?.monitor?.totalCommands }}
{{ current.stats.totalCommands }}
{{ strings().page?.monitor?.clients }}
{{ current.clients.connected }}
{{ strings().page?.monitor?.blocked }}
{{ current.clients.blocked }}
{{ strings().page?.monitor?.hitsMisses }}
{{ current.stats.hitRate }}%
{{ strings().page?.monitor?.hitsAndMisses }}
{{ current.stats.hits }} / {{ current.stats.misses }}
{{ strings().page?.monitor?.networkIo }}
{{ current.stats.inputKbps | number:'1.1-1' }} / {{ current.stats.outputKbps | number:'1.1-1' }} KB/s
{{ strings().page?.monitor?.expired }}
{{ current.stats.expiredKeys }}
{{ strings().page?.monitor?.evicted }}
{{ current.stats.evictedKeys }}
@if (serverInfo) {
@if (serverInfo.os) {
{{ strings().page?.monitor?.os }}
{{ serverInfo.os }}
} @if (serverInfo.port) {
{{ strings().page?.monitor?.port }}
{{ serverInfo.port }}
} @if (serverInfo.pid) {
{{ strings().page?.monitor?.pid }}
{{ serverInfo.pid }}
} @if (serverInfo.configFile) {
{{ strings().page?.monitor?.configFile }}
{{ serverInfo.configFile }}
}
{{ strings().page?.monitor?.cpuSys }} CPU
{{ serverInfo.cpuSys }}
{{ strings().page?.monitor?.cpuUser }} CPU
{{ serverInfo.cpuUser }}
} @if (persistenceInfo) {
{{ strings().page?.monitor?.rdbLastSave }}
{{ persistenceInfo.rdbLastSave }}
{{ strings().page?.monitor?.rdbStatus }}
{{ persistenceInfo.rdbStatus }}
{{ strings().page?.monitor?.rdbChanges }}
{{ persistenceInfo.rdbChanges }}
{{ strings().page?.monitor?.aofEnabled }}
{{ persistenceInfo.aofEnabled }}
@if (persistenceInfo.aofSize) {
{{ strings().page?.monitor?.aofSize }}
{{ persistenceInfo.aofSize }}
}
} @if (replicationInfo) {
{{ strings().page?.monitor?.role }}
{{ replicationInfo.role }}
@if (replicationInfo.replicas !== undefined) {
{{ strings().page?.monitor?.replicas }}
{{ replicationInfo.replicas }}
} @if (replicationInfo.masterHost) {
{{ strings().page?.monitor?.masterHost }}
{{ replicationInfo.masterHost }}:{{ replicationInfo.masterPort }}
} @if (replicationInfo.linkStatus) {
{{ strings().page?.monitor?.linkStatus }}
{{ replicationInfo.linkStatus }}
}
} @if (keyspaceEntries.length > 0) {
@for (entry of keyspaceEntries; track entry.db; let last = $last) {
{{ entry.db }}
{{ strings().page?.monitor?.keys }}: {{ entry.keys }} · {{ strings().page?.monitor?.expires }}: {{ entry.expires }}
@if (!last) { } }
}
@if (modulesList.length === 0) {
{{ strings().page?.monitor?.noModules }}
} @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 }}
} @for (entry of current.slowlog; track entry.id) {
{{ entry.duration }}µs {{ entry.command }}
}

@if (!autoRefreshClients) { }
@if (clientList.length === 0 && clientListLoaded) {
{{ strings().page?.monitor?.noClients }}
} @if (clientList.length === 0 && !clientListLoaded) {
{{ strings().label?.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 }}
} @if (topKeys.length === 0 && !topKeysLoaded) {
{{ strings().label?.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 }}
} @else { @for (shard of clusterShards; track shard.master.id) {
{{ shard.master.host }}:{{ shard.master.port }} {{ formatSlotRanges(shard) }}
{{ getSlotCount(shard) }} {{ strings().page?.monitor?.totalSlots }} @if (shard.replicas.length > 0) { ({{ formatReplicas(shard) }}) }
}
16384 slots across {{ clusterShards.length }} masters
}
} }