Skip to main content
The HGETDEL command returns the values of the specified fields and then atomically deletes them from the hash. This is useful when you need to retrieve and remove data in a single atomic operation.

Arguments

key
str
required
The key of the hash.
fields
*List[str]
required
One or more field names to get and delete.

Response

A list of values corresponding to the requested fields, in the same order as the field arguments. For fields that do not exist, None is returned in that position. If the hash doesn’t exist, None is returned.
# Set some hash fields
redis.hset("user:123", values={
    "name": "John",
    "age": "30",
    "email": "john@example.com"
})

# Get and delete specific fields
result = redis.hgetdel("user:123", "name", "email")
assert result == ["John", "john@example.com"]

# Verify fields were deleted
assert redis.hget("user:123", "name") is None

Use Cases

  • Session Management: Retrieve and invalidate session data atomically
  • Cache Cleanup: Get cached data while removing it from storage
  • Queue Processing: Fetch and remove job data in a single operation
  • Temporary Data: Retrieve one-time use tokens or codes while deleting them