about aiogram
🗄 Що за бд редіс, Redis? #цікаве
👉 База даних Redis - (абр. remote dictionary server) швидке NoSQL сховище даних в форматі «ключ-значення», які зберігаються в оперативній пам'яті
📌 офіційної підтримки на Windows немає, але «якось» працювати можна
😀 І навіщо мені цим користуватись?
Наприклад, якщо взяти MemoryStorage, то данні які ми обробляємо за допомогою FSM будуть видалятися при зупинці бота. Але якщо ми хочемо, щоб данні зберігались? От для цього і підходить Redis (також з ним поєднують планувальники задач і черги, застосовують для роботи з хешем)
👀 Як цим користуватись?
1️⃣ Завантажуємо Redis
💭 Саме так і ніяк інакше, ви не під'єднаєтесь до того, чого у вас немає. Для кожної ОС є свої інструкції, які можуть різнитись, тому я не зможу описати процес встановлення персонально для вас - шукаємо це в інтернеті
2️⃣ Підключаємось до Redis
from aiogram.fsm.storage.redis import (
RedisStorage,
DefaultKeyBuilder,
)
storage = RedisStorage.from_url(
config.redis_url,
key_builder=DefaultKeyBuilder(
with_destiny=True,
),
state_ttl=timedelta(days=1),
data_ttl=timedelta(days=1),
)
dp = Dispatcher(storage=storage)
📌 клас RedisStorage потрібен для з'єднання з редісом, він приймає екземпляр коннекту до бд або url з даними для підключення. Тут використано метод from_url, саме він приймає url і просуває іменовані аргументи якби ми передали їх у RedisStorage напряму
📌 параметр key_builder можна використати для класу DefaultKeyBuilder, який потрібен для налаштування побудови ключів у редісі, ми вказуємо with_destiny=True, щоб вони були більш унікальними один для одного
📌 аргументи state_ttl і data_ttl - задають час в секундах, після закінчення якого ключи (для state і data відповідно) будуть видалятися. За замовчуванням у ключів в редісі немає TTL (time to live) - тому вони просто не видаляються і накопичуються
3️⃣ Користуємось FSM і поглиблюємо знання
💭 В принципі на цьому можна було б закінчити, оскільки після вищезазначених інстру
7 · 1.1K ·