redis.hset("user:123", values={"name": "John", "email": "john@example.com"})# Get fields and set expiration to 60 secondsresult = redis.hgetex("user:123", "name", "email", ex=60)assert result == ["John", "john@example.com"]
redis.hset("session:abc", values={"token": "xyz123", "user": "john"})# Get fields and set expiration to 30000 milliseconds (30 seconds)result = redis.hgetex("session:abc", "token", "user", px=30000)assert result == ["xyz123", "john"]
import timeredis.hset("cache:data", "value", "cached")# Set expiration to specific timestamp (1 hour from now)future_time = int(time.time()) + 3600result = redis.hgetex("cache:data", "value", exat=future_time)assert result == ["cached"]
import timeredis.hset("temp:data", "info", "temporary")# Set expiration to specific timestamp in millisecondsfuture_time = int(time.time() * 1000) + 60000 # 1 minute from nowresult = redis.hgetex("temp:data", "info", pxat=future_time)assert result == ["temporary"]
redis.hset("user:456", "name", "Jane")redis.expire("user:456", 300) # Set 5 minute expiration# Get fields and remove expirationresult = redis.hgetex("user:456", "name", persist=True)assert result == ["Jane"]# Verify expiration was removedttl = redis.ttl("user:456")assert ttl == -1 # No expiration
redis.hset("data:xyz", values={"field1": "value1", "field2": "value2"})# Just get fields without changing expirationresult = redis.hgetex("data:xyz", "field1", "field2")assert result == ["value1", "value2"]
redis.hset("user:789", "name", "Bob")# Get fields including one that doesn't existresult = redis.hgetex("user:789", "name", "email")assert result == ["Bob", None]
Hash
HGETEX
Get hash fields with expiration support.
The HGETEX command returns the values of the specified fields and optionally sets their expiration time or TTL. This allows you to retrieve hash data while managing its lifetime in a single operation.
A list of values corresponding to the requested fields in the same order. Returns None for fields that do not exist. If the hash doesn’t exist, None is returned.
redis.hset("user:123", values={"name": "John", "email": "john@example.com"})# Get fields and set expiration to 60 secondsresult = redis.hgetex("user:123", "name", "email", ex=60)assert result == ["John", "john@example.com"]
redis.hset("session:abc", values={"token": "xyz123", "user": "john"})# Get fields and set expiration to 30000 milliseconds (30 seconds)result = redis.hgetex("session:abc", "token", "user", px=30000)assert result == ["xyz123", "john"]
import timeredis.hset("cache:data", "value", "cached")# Set expiration to specific timestamp (1 hour from now)future_time = int(time.time()) + 3600result = redis.hgetex("cache:data", "value", exat=future_time)assert result == ["cached"]
import timeredis.hset("temp:data", "info", "temporary")# Set expiration to specific timestamp in millisecondsfuture_time = int(time.time() * 1000) + 60000 # 1 minute from nowresult = redis.hgetex("temp:data", "info", pxat=future_time)assert result == ["temporary"]
redis.hset("user:456", "name", "Jane")redis.expire("user:456", 300) # Set 5 minute expiration# Get fields and remove expirationresult = redis.hgetex("user:456", "name", persist=True)assert result == ["Jane"]# Verify expiration was removedttl = redis.ttl("user:456")assert ttl == -1 # No expiration
redis.hset("data:xyz", values={"field1": "value1", "field2": "value2"})# Just get fields without changing expirationresult = redis.hgetex("data:xyz", "field1", "field2")assert result == ["value1", "value2"]
redis.hset("user:789", "name", "Bob")# Get fields including one that doesn't existresult = redis.hgetex("user:789", "name", "email")assert result == ["Bob", None]