root/release/: blackbot-redis-storage-0.2.12 metadata and description
Library for work with Redis
| author_email | Vyacheslav <mr@cipher3.ru> |
| classifiers |
|
| description_content_type | text/markdown |
| requires_dist |
|
| requires_python | >=3.9 |
Because this project isn't in the mirror_whitelist,
no releases from root/pypi are included.
| File | Tox results | History |
|---|---|---|
blackbot_redis_storage-0.2.12-py3-none-any.whl
|
|
|
blackbot_redis_storage-0.2.12.tar.gz
|
|
RedisStorage
Описание
Предоставляет интерфейс сохранения данных в Redis
Важно
Хранение
Пример использования
from pydantic import BaseModel
from typing import Optional
class UserModel(BaseModel):
name: str
age: int
from blackbot_redis_storage import RedisStorage, ObjectStorageUnit
class UserRedisStorage(RedisStorage):
# Определяем хранилище пользователей с использованием ObjectStorageUnit
users = ObjectStorageUnit[UserModel](prefix='users', model=UserModel, expire=3600)
# Инициализируем подключение к Redis
storage = UserRedisStorage(
redis_host="localhost",
redis_port=6379,
redis_password="xxx",
redis_db=0,
default_expire=3600
)
# Устанавливаем значение
user1 = UserModel(name='John Doe', age=30)
storage.users[1] = user1
# Получаем значение
print(storage.users.get(1).json())
print(storage.users[1].json())
# Обновляем значение
user1.age = 31
storage.users.update(1, user1) # ключ, значение
storage.users.update_some_key(1, "name", "John Smith") # ключ, поле, значение
storage.users.update_many_keys(
1, # ID
{
"age": 32,
"name": "John Smith"
} # Значения
)
user1 = storage.users[1]
# Удаляем значение
storage.users.remove(1)
# Исключения
from blackbot_redis_storage import exceptions as redis_storage_exps
try:
storage.users.update(1, user1)
# Или
storage.users.update_some_key(1, "name", "Jane Doe")
except redis_storage_exps.NotFoundException as e:
print(f"User with ID: {1} not found")
# Потому что мы удалили этого пользователя на предыдущем шаге
except redis_storage_exps.ConnectionError as e:
print(f"Cannot connect to Redis...")
class InvalidUserModel:
name: str
invalidUser = InvalidUserModel(name="Alexa")
try:
storage.users[1] = invalidUser
except redis_storage_exps.TypeValueError as e:
print(e)
# > Значение должно быть подклассом pydantic.BaseModel