Redis обратная запись кеша еще ручная задача? - PullRequest
0 голосов
/ 13 мая 2019

Я работаю над заданием.API REST (разработанный весной) имеет метод m (), который имитирует очистку окон человеком.Под конец уборщик должен написать уникальную фразу (строку) на окне.Фразы, написанные всеми уборщиками, в конечном итоге сохраняются в БД MySQL.Таким образом, каждый раз, когда выполняется m (), в БД делается запрос на выборку всех фраз, записанных в БД сегодня.Затем метод очистки m () генерирует случайную строку в виде фразы, проверяет ее в запрашиваемых фразах, чтобы убедиться в ее уникальности, и записывает ее в базу данных.Таким образом, существует один запрос на m () для извлечения всех фраз и один для написания фразы.И то, и другое происходит за одним столом.

Это сценарий, который может использовать преимущества кэширования, и я перешел к Redis.Я также думаю, что кэш обратной записи - лучшее решение.Таким образом, каждая запись происходит, она происходит в кеш, а не в БД, и каждое чтение также происходит из кэша.Кеш может быть скопирован в БД в новом потоке в час (или что-то настраиваемое).Я читал Может ли Redis записать в базу данных, такую ​​как PostgreSQL? , и, кажется, несколько лет назад вам приходилось делать это вручную.

Мои вопросы:

  1. Делать это вручную все еще путь?Если нет, может кто-нибудь указать мне на ресурс Redis, который я могу использовать?
  2. Если руководство - это путь, я планирую реализовать его.Это идеально?

    Фразы, написанные каждый час, будут добавлены в список объектов (идентификатор пользователя, фраза) в Redis, список с полуночи до 1 часа ночи будет называться phrases_1, с 1 до 2 часов ночи как phrases_2 искоро.Каждый час фоновый поток записывает весь список часов в БД.Каждый раз, когда все фразы необходимо выбрать для проверки, я буду загружать все списки за день из кэша, например, phrases_1, phrases_2 в цикле и объединять их.(Позже, когда число пользователей увеличится - мне придется осколок, но это не моя непосредственная задача).

Спасибо.

1 Ответ

0 голосов
/ 13 мая 2019

Вместо того, чтобы использовать redis для уникальности данных, вы должны создать уникальный индекс для поля, которое вы хотите быть уникальным, а MySQL позаботится обо всем остальном за вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...