Skip to content

Hash Commands

Redis hashes map string fields to string values — ideal for storing objects.

hset / hget

r.hset("user:1", "name", "Alice")
r.hset("user:1", "age", "30")
r.hget("user:1", "name")       # 'Alice'
r.hget("user:1", "missing")    # None

hgetall

Returns all fields and values.

r.hgetall("user:1")
# ['name', 'Alice', 'age', '30']

Note

Unlike redis-py, hgetall returns a flat list of alternating [field, value, field, value, ...] pairs, not a dict.

hmget

Get multiple fields at once.

r.hmget("user:1", "name", "age", "missing")
# ['Alice', '30', None]

hdel / hexists / hlen

r.hdel("user:1", "age")         # 1
r.hexists("user:1", "name")     # 1 (True)
r.hexists("user:1", "age")      # 0 (False)
r.hlen("user:1")                # 1

hkeys / hvals

r.hkeys("user:1")    # ['name']
r.hvals("user:1")    # ['Alice']

hincrby / hincrbyfloat

Atomic field counters.

r.hset("stats", "views", "100")
r.hincrby("stats", "views", 5)       # 105
r.hincrbyfloat("stats", "score", 0.1) # '0.1'

hsetnx

Set field only if it doesn't exist.

r.hsetnx("user:1", "name", "Bob")    # 0 (field exists)
r.hsetnx("user:1", "email", "a@b")   # 1 (field created)