Storages¶
Storages out of the box¶
MemoryStorage¶
RedisStorage¶
MongoStorage¶
KeyBuilder¶
Keys inside Redis and Mongo storages can be customized via key builders:
- class aiogram.fsm.storage.base.DefaultKeyBuilder(*, prefix: str = 'fsm', separator: str = ':', with_bot_id: bool = False, with_business_connection_id: bool = False, with_destiny: bool = False)[source]¶
Simple key builder with default prefix.
Generates a colon-joined string with prefix, chat_id, user_id, optional bot_id, business_connection_id, destiny and field.
- Format:
<prefix>:<bot_id?>:<business_connection_id?>:<chat_id>:<user_id>:<destiny?>:<field?>
Writing own storages¶
- class aiogram.fsm.storage.base.BaseStorage[source]¶
Base class for all FSM storages
- abstractmethod async set_state(key: StorageKey, state: str | State | None = None) None[source]¶
Set state for specified key
- Parameters:
key – storage key
state – new state
- abstractmethod async get_state(key: StorageKey) str | None[source]¶
Get key state
- Parameters:
key – storage key
- Returns:
current state
- abstractmethod async set_data(key: StorageKey, data: Mapping[str, Any]) None[source]¶
Write data (replace)
- Parameters:
key – storage key
data – new data
- abstractmethod async get_data(key: StorageKey) dict[str, Any][source]¶
Get current data for key
- Parameters:
key – storage key
- Returns:
current data