Почему кеш базы данных Django не используется несколькими потоками?

Кажется, что каждый поток поддерживает свой отдельный кеш. Должен ли я просто использовать свой собственный объект Django, чтобы кэш базы данных использовался несколькими потоками? Какие минусы для этого?

Проблема, с которой я сталкиваюсь, заключается в следующем:

  1. Я использую кеш базы данных
  2. Сохраняю в кеш при обработке запроса
  3. Я получаю из кеша при обработке следующего запроса

Я ожидаю, что он будет в кеше, но его там нет. При печати идентификатора потока, я вижу, что это другой поток. Тот же поток получает попадание в кэш, но другой поток получает пропуск кэша.

Я не ожидаю, что это произойдет с базой данных кэша базы данных.

1 ответ

Это верно только в том случае, если вы используете серверную часть кэша locmem. Что вы не должны делать в производстве; используйте надлежащий кеш, будь то файловая система или кеш БД, или выделенный бэкэнд кеша, такой как memcached или redis.

Другие вопросы по тегам