redis_service.keys
keys
codex_platform.redis_service.keys
Redis Key Registry — typed, centralized key definitions.
Eliminates "magic strings" and prevents key format mismatches across multiple containers (bot, workers, API) that share the same Redis.
Usage::
class UserKey(BaseRedisKey):
template = "u:{user_id}"
key = UserKey().build(user_id=42) # → "u:42"
# Or via resolve_key:
from codex_platform.redis_service.keys import resolve_key
resolve_key(UserKey(), user_id=42) # → "u:42"
resolve_key("u:42") # → "u:42"
Extending for project-specific keys::
from codex_platform.redis_service.keys import BaseRedisKey
class JobStatusKey(BaseRedisKey):
template = "arq:job:{job_id}:status"
Classes
BaseRedisKey
Bases: ABC
Abstract base for all Redis key definitions.
Subclass and define template with {placeholder} syntax.
Call .build(**kwargs) to construct the final key string.
Source code in src/codex_platform/redis_service/keys.py
Attributes
template
abstractmethod
property
Key template string with {placeholder} syntax.
Functions
build(**kwargs)
Build the final key string by formatting the template with keyword arguments.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Any
|
Values for each placeholder defined in |
{}
|
Returns:
| Type | Description |
|---|---|
str
|
Fully resolved Redis key string. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If a required placeholder argument is missing. |
Source code in src/codex_platform/redis_service/keys.py
UserKey
Bases: BaseRedisKey
User data hash. Args: user_id.
Source code in src/codex_platform/redis_service/keys.py
SessionKey
Bases: BaseRedisKey
Session data. Args: token.
Source code in src/codex_platform/redis_service/keys.py
Functions
resolve_key(key, **kwargs)
Resolve a key that is either a plain string or a BaseRedisKey instance.
If key is a :class:BaseRedisKey, calls key.build(**kwargs).
If key is a plain string, returns it unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str | BaseRedisKey
|
Redis key string or a |
required |
**kwargs
|
Any
|
Placeholder values forwarded to |
{}
|
Returns:
| Type | Description |
|---|---|
str
|
Resolved Redis key string. |
Example::
resolve_key(UserKey(), user_id=42) # → "u:42"
resolve_key("u:42") # → "u:42"