MEMORY USAGE tells you which key is the problem

--bigkeys reports the largest key by element count, which is not the same as the largest by memory — a hash with 500 short fields is smaller than one with 50 long ones, and the sampling only reports the biggest per type.

redis-cli MEMORY USAGE session:8841
(integer) 4194512

# and the sampling version, new in 4.0
redis-cli --memkeys --memkeys-samples 0

MEMORY USAGE walks the structure, so it is exact and it is O(n) on the key — fine for investigating a suspect, not fine in a loop over the keyspace. --memkeys samples, which is the tradeoff worth making for a survey. Both are new in 4.0; before it, the honest answer to “which key is using the memory” was that nobody could tell you.