Storage¶
Этот модуль поможет вам хранить данные внутри бота.
У вас есть выбор из трёх стандартных хранилищ: - dict-like хранилище - ttl хранилище - redis хранилище
import asyncio
from vkwave.bots.storage.storages import Storage
from vkwave.bots.storage.types import Key
storage = Storage()
async def main():
my_key = Key("123")
await storage.put(my_key, 456)
print(await storage.contains(my_key)) # True
await storage.delete(my_key)
print(await storage.contains(my_key)) # False
print(await storage.get(my_key, default=789)) # 789
if __name__ == '__main__':
asyncio.get_event_loop().run_until_complete(main())
Если вам нужны time-to-life ключи:
from vkwave.bots.storage.storages import TTLStorage
from vkwave.bots.storage.types import Key
storage = TTLStorage(default_ttl=10)
async def main():
my_key = Key("123")
await storage.put(my_key, 456, ttl=2)
print(await storage.contains(my_key)) # True
await asyncio.sleep(2)
print(await storage.contains(my_key)) # False
Если вы используете Redis:
from vkwave.bots.storage.storages import RedisStorage
storage = RedisStorage(default_ttl=10) # you can also specify the host, port, db and password
async def main():
my_key = Key("123")
await storage.put(my_key, 456, ttl=2)
print(await storage.contains(my_key)) # True
await asyncio.sleep(2)
print(await storage.contains(my_key)) # False
await storage.close()
await storage.wait_closed()