SET

Stores a string, optionally with tested existence conditions or expiry.

Strings · Example verified

Syntax covered here

SET key value | SET key value EX seconds | SET key value NX [EX seconds] | SET key value XX GET

NX skips an existing key and creates a missing one; NX with EX is also accepted. XX GET replaces an existing value while returning its previous value.

Tested example & replies

Requests below run in order against an empty database. Each connection authenticates with the fixture password first. Quoted values are strings; null is a nil reply; arrays preserve RESP order.

# connection: default
> SET greeting hello
"OK"
# connection: default
> SET greeting world NX
null
# connection: default
> SET fresh world NX EX 60
"OK"
# connection: default
> GET fresh
"world"
# connection: default
> SET fresh changed XX GET
"world"
# connection: default
> GET fresh
"changed"
Verification scope: the argument forms, setup and assertions shown here. These examples do not establish support for unlisted options or deployment modes. Run your application tests with your data and client.
Test environment & reproducible evidence

Verified: 2026-09-21T11:06:06Z · Docker / Linux aarch64 · lavik 0.1.0-beta.1

Storage & connection: io_uring · temporary file, 2 workers, standalone, plaintext TCP, password authentication. This test does not measure NVMe performance.

Pinned source: 3955b98d43b312324aa8d52775df52cfb111c0d0

Binary SHA-256: 8306b37ddf05023f85166a6aa2192b7084757e8defd342b602e6470244aca887

Image: sha256:af0cfb11b78f184cb6cc49a774a49dc97a8e43a0bd3f4d63d83c8c9ef3282d6e

Full test receipt · Executable tests

Lavik command registry · Valkey counterpart (support may differ)