Skip to content

jam.sessions.redis

redis

Classes:

Name Description
RedisSessions

Redis session management module.

RedisSessions

RedisSessions(
    redis_uri: Union[
        str, Redis
    ] = "redis://localhost:6379/0",
    redis_sessions_key: str = "sessions",
    default_ttl: Optional[int] = 3600,
    is_session_crypt: bool = False,
    session_aes_secret: Optional[bytes] = None,
    id_factory: Callable[[], str] = lambda: str(uuid4()),
)

Bases: BaseSessionModule

Redis session management module.

Parameters:

Name Type Description Default
redis_uri str | Redis

The URI for the Redis server.

'redis://localhost:6379/0'
redis_sessions_key str

The key under which sessions are stored in Redis.

'sessions'
default_ttl Optional[int]

Default time-to-live for sessions in seconds. Defaults to 3600 seconds (1 hour).

3600
is_session_crypt bool

If True, session keys will be encoded.

False
session_aes_secret Optional[bytes]

AES secret for encoding session keys. Required if is_session_key_crypt is True.

None
id_factory Callable[[], str]

A callable that generates unique IDs. Defaults to a UUID factory.

lambda: str(uuid4())

Methods:

Name Description
clear

Clear all sessions for a given session key.

create

Create a new session with the given session key and data.

delete

Delete a session by its ID.

get

Retrieve a session by its key or ID.

rework

Rework a session and return its new ID.

update

Update an existing session with new data.

clear

clear(session_key: str) -> None

Clear all sessions for a given session key.

Parameters:

Name Type Description Default
session_key str

The session key to clear.

required

create

create(session_key: str, data: dict) -> str

Create a new session with the given session key and data.

Parameters:

Name Type Description Default
session_key str

The key for the session.

required
data dict

The data to be stored in the session.

required

Returns:

Name Type Description
str str

The unique ID of the created session.

delete

delete(session_id: str) -> None

Delete a session by its ID.

Parameters:

Name Type Description Default
session_id str

The session ID.

required

get

get(session_id: str) -> Optional[dict]

Retrieve a session by its key or ID.

Parameters:

Name Type Description Default
session_id str

The session key or ID.

required

Returns:

Type Description
Optional[dict]

dict | None: The session data if found, otherwise None.

rework

rework(session_id: str) -> str

Rework a session and return its new ID.

Parameters:

Name Type Description Default
session_id str

The ID of the session to rework.

required

Returns:

Name Type Description
str str

The new session ID.

update

update(session_id: str, data: dict) -> None

Update an existing session with new data.

Parameters:

Name Type Description Default
session_id str

The ID of the session to update.

required
data dict

The new data to be stored in the session.

required

FILE PATH: jam/sessions/redis.py