MEMORY-USAGE(3valkey)
π memory-usage β the "how much RAM is this key eating" command π
okay bestie, welcome to the memory-usage(3valkey) page, straight out of the Valkey Command Manual. pull up a chair, grab a strawberry π, and let's find out exactly how fat your keys are. no cap.
β¨ NAME β¨
memory-usage β Estimates the memory usage of a key.
like literally, it tells you how many bytes a key is hogging. it's giving scale energy. π
π SYNOPSIS π
MEMORY USAGE key [SAMPLES count]
π DESCRIPTION π
The MEMORY USAGE command reports the number of bytes that a key and its value require to be stored in RAM. yes bestie, actual real bytes, counted. π₯
The reported usage is the total of memory allocations for data and administrative overheads that a key and its value require. so it's not just the pretty data β it's the whole backstage operation too, iykyk.
For nested data types, the optional SAMPLES option can be provided, where count is the number of sampled nested values. The samples are averaged to estimate the total size. By default, this option is set to 5. To sample the all of the nested values, use SAMPLES 0. (so likeβ¦ 0 means "sample everything, no shortcuts", not "sample nothing". do not get it twisted bestie π)
πΈ REPLY πΈ
RESP2
One of the following, bestie:
- valkey-protocol(7) Integer reply: the memory usage in bytes. π
- valkey-protocol(7) Nil reply: if the key does not exist. π
RESP3
One of the following, same vibe different protocol:
- valkey-protocol(7) Integer reply: the memory usage in bytes. π
- valkey-protocol(7) Null reply: if the key does not exist. π
π¦ COMPLEXITY π¦
O(N) where N is the number of samples. so the more you sample, the more work it does. pick your battles. βοΈ
π ACL CATEGORIES π
@read@slow
β HISTORY β
- Available since:
4.0.0
she's been iconic since 4.0.0 and honestly? we stan. π«Ά
π§ EXAMPLES π§
With Valkey v7.2.4 64-bit and jemalloc, the empty string measures as follows:
> SET "" ""
OK
> MEMORY USAGE ""
(integer) 56
These bytes are pure overhead at the moment as no actual data is stored, and are used for maintaining the internal data structures of the server (include internal allocator fragmentation). Longer keys and values show asymptotically linear usage.
> SET foo bar
OK
> MEMORY USAGE foo
(integer) 56
> SET foo2 mybar
OK
> MEMORY USAGE foo2
(integer) 64
> SET foo3 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
OK
> MEMORY USAGE foo3
(integer) 160
see how the numbers climb as the values get longer? asymptotically linear, bestie. it's math and it's serving. β¨
π₯ SEE ALSO π₯
the whole friend group, fr fr:
- acl(3valkey)
- acl-cat(3valkey)
- acl-deluser(3valkey)
- acl-dryrun(3valkey)
- acl-genpass(3valkey)
- acl-getuser(3valkey)
- acl-help(3valkey)
- acl-list(3valkey)
- acl-load(3valkey)
- acl-log(3valkey)
- acl-save(3valkey)
- acl-setuser(3valkey)
- acl-users(3valkey)
- acl-whoami(3valkey)
- bgrewriteaof(3valkey)
- bgsave(3valkey)
- command(3valkey)
- command-count(3valkey)
- command-docs(3valkey)
- command-getkeys(3valkey)
- command-getkeysandflags(3valkey)
- command-help(3valkey)
- command-info(3valkey)
- command-list(3valkey)
- commandlog(3valkey)
- commandlog-get(3valkey)
- commandlog-help(3valkey)
- commandlog-len(3valkey)
- commandlog-reset(3valkey)
- config(3valkey)
- config-get(3valkey)
- config-help(3valkey)
- config-resetstat(3valkey)
- config-rewrite(3valkey)
- config-set(3valkey)
- dbsize(3valkey)
- debug(3valkey)
- failover(3valkey)
- flushall(3valkey)
- flushdb(3valkey)
- info(3valkey)
- lastsave(3valkey)
- latency(3valkey)
- latency-doctor(3valkey)
- latency-graph(3valkey)
- latency-help(3valkey)
- latency-histogram(3valkey)
- latency-history(3valkey)
- latency-latest(3valkey)
- latency-reset(3valkey)
- lolwut(3valkey)
- memory(3valkey)
- memory-doctor(3valkey)
- memory-help(3valkey)
- memory-malloc-stats(3valkey)
- memory-purge(3valkey)
- memory-stats(3valkey)
- module(3valkey)
- module-help(3valkey)
- module-list(3valkey)
- module-load(3valkey)
- module-loadex(3valkey)
- module-unload(3valkey)
- monitor(3valkey)
- psync(3valkey)
- replconf(3valkey)
- replicaof(3valkey)
- restore-asking(3valkey)
- role(3valkey)
- save(3valkey)
- shutdown(3valkey)
- slowlog(3valkey)
- slowlog-get(3valkey)
- slowlog-help(3valkey)
- slowlog-len(3valkey)
- slowlog-reset(3valkey)
- swapdb(3valkey)
- sync(3valkey)
- time(3valkey)
and that's the whole page bestie!! π this one's from Valkey 9.0.0, dated 2025-10-21, and it lives in the MEMORY-USAGE(3valkey) manual. go forth and measure your keys. mwah πβ¨
π¦ where this page comes from
- fedora 44: valkey-doc 9.0.3-2.fc44 Β· CC-BY-SA-4.0
- fedora 44: valkey-doc 9.0.6-1.fc44 Β· CC-BY-SA-4.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms