#caching #redis
#кэширование #redis
Вопрос:
Я работаю над приложением, которое предоставляет переведенные субтитры для видеоконтента. Мой шаблон доступа выглядит следующим образом:
-
Извлекать субтитры к видео
-
Для каждого слова извлекайте перевод из «базы данных переводов» (по сути, просто словарь word -> word на языке x)
-
Возвращает агрегированные переводы.
Каждое видео может содержать тысячи слов, и мой текущий метод занимает несколько секунд для одного видео — в основном это связано с повторной выборкой word -> word translations . Поскольку весь словарь переводов ограничен и относительно мал, порядка нескольких мегабайт, я подумал, что мог бы просто кэшировать весь словарь, чтобы пропустить все эти крошечные выборки из базы данных.
Новое в стратегиях кэширования — будет ли что-то вроде Redis излишним или это предполагаемый вариант использования? Предпочел бы снизить затраты. Используя Node.js бэкэнд, если это имеет отношение к делу.
Ответ №1:
У вас мало вариантов:
-
Вы можете использовать Amazon Translate, который сделает всю тяжелую работу за вас. Вы можете просто вызвать API и получить переведенный текст (существуют как пакетные, так и API в реальном времени).
-
Если размер кэша составляет всего несколько мегабайт, извлеките словарь из базы данных при запуске приложения и сохраните его в памяти приложения. Однако, если словарь будет расти, сохраните его в Redis.