Hash

HGETDEL

Get and delete hash fields atomically.

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

keybodystrrequired

The key of the hash.

fieldsbody*List[str]required

One or more field names to get and delete.

Response

Optional[List[str | None]]

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.

Basic Example
# Set some hash fieldsredis.hset("user:123", values={    "name": "John",    "age": "30",    "email": "john@example.com"})# Get and delete specific fieldsresult = redis.hgetdel("user:123", "name", "email")assert result == ["John", "john@example.com"]# Verify fields were deletedassert redis.hget("user:123", "name") is None
Multiple Fields
redis.hset("session:abc", values={    "token": "xyz123",    "user": "john",    "expires": "2024-12-31"})# Get and delete all fieldssession = redis.hgetdel("session:abc", "token", "user", "expires")assert session == ["xyz123", "john", "2024-12-31"]
Non-existent Fields
redis.hset("user:456", "name", "Jane")# Get and delete with non-existent fieldresult = redis.hgetdel("user:456", "name", "email")assert result == ["Jane", None]
Non-existent Hash
# Returns None if hash doesn't existresult = redis.hgetdel("nonexistent", "field1")assert result 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
Loading search…