Skip to main content

HSET

Syntax

HSET key field value [field value ...]

Time complexity: O(1) for each field/value pair added, so O(N) to add N field/value pairs when the command is called with multiple field/value pairs.

ACL categories: @write, @hash, @fast

Sets the specified fields to their respective values in the hash stored at key.

This command overwrites the values of specified fields that exist in the hash. If key doesn't exist, a new key holding a hash is created.

Return

Integer reply: The number of fields that were added.

Examples

dragonfly> HSET myhash field1 "Hello"
(integer) 1
dragonfly> HGET myhash field1
"Hello"
dragonfly> HSET myhash field2 "Hi" field3 "World"
(integer) 2
dragonfly> HGET myhash field2
"Hi"
dragonfly> HGET myhash field3
"World"
dragonfly> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "Hi"
5) "field3"
6) "World"

Benchmark

Sustained throughput for HSET on a single instance, measured against Redis and Valkey on identical hardware. Higher is better.

Dragonfly7,990,000OPS
Valkey704,00011.3× OPS
Redis638,50012.5× OPS
02.0M4.0M6.0M8.0M
operations / second
EngineThroughputp50p99p99.9Avg Latency
Dragonfly7.99M ops/s0.507 ms1.985 ms7.332 ms0.583 ms
Valkey704.0K ops/s6.573 ms13.470 ms17.760 ms6.804 ms
Redis638.5K ops/s6.839 ms11.613 ms18.655 ms7.503 ms

Methodology

HardwareServer: m7g.8xlarge (arm64) · Client: c6gn.8xlarge (arm64)
Client32 threads, 5 connections, pipeline 30
Dataset100M keys, 128B values, uniform key distribution
Duration300s (10s warmup), 1 trial
Measured2026-07-28

Ran through dfly_bench until throughput stabilized; the reported figure is the median throughput sampled during the run. Harness and raw output: dragonflydb/benchmarking.