Skip to content

ZSET.F64

Sets a key to a double-precision floating-point value in the ZMap ordered key-value store.

ZSET.F64 <key> <value> [NAMESPACE <path>]

key and value are positional. NAMESPACE is a keyword argument and comes after them.

ArgumentTypeRequiredDescription
keybytesYesThe key to set.
valuedoubleYesA finite IEEE-754 double-precision value.
NAMESPACEstringNoRun this command in the given namespace instead of the session’s current one. The namespace must exist. The session’s current namespace does not change.

Simple string: OK on success.

ZSET.F64 writes a typed 64-bit floating-point value for a key in the ZMap subspace of the session’s current namespace. The value is encoded as 8 bytes in little-endian IEEE-754 double format, the same encoding used by ZINC.F64 and read by ZGET.F64.

If the key already exists, its value is overwritten silently.

The value must be a finite double. NaN and Infinity are rejected. Negative zero (-0.0) is normalized to 0.0.

The command supports two transaction modes:

  • Auto-commit (one-off): When no explicit transaction is active, Kronotop creates a transaction, performs the write, and commits it immediately. This is the default mode.
  • Explicit transaction: When a BEGIN has been issued, the write is staged in the current transaction and only persists when COMMIT is called.

All data is scoped to a namespace: the session’s active one, or the one given with NAMESPACE. The same key in different namespaces refers to different entries.

Argument errors:

Error CodeError messageCause
ERRwrong number of arguments for 'ZSET.F64' command-
ERRvalue is not a double or out of range-
ERRInvalid value: must be a finite IEEE-754 doubleThe value is NaN or Infinity.
ERRUnknown '<keyword>' argument-
ERRNAMESPACE argument must be followed by a namespace-

Namespace errors:

Error CodeError messageCause
NOSUCHNAMESPACENo such namespace: '<path>'-
NAMESPACEBEINGREMOVEDNamespace '<path>' is being removed-

Set a floating-point value:

> ZSET.F64 price 19.99
OK
> ZGET.F64 price
(double) 19.99

Overwrite an existing value:

> ZSET.F64 price 19.99
OK
> ZSET.F64 price 24.99
OK
> ZGET.F64 price
(double) 24.99

NaN rejection:

> ZSET.F64 price NaN
(error) ERR Invalid value: must be a finite IEEE-754 double

Use within an explicit transaction:

> BEGIN
OK
> ZSET.F64 tx-price 42.42
OK
> COMMIT
OK
> ZGET.F64 tx-price
(double) 42.42