И ElasticSearch, и Redis, лишний случай использования?
В настоящее время я разрабатываю архитектуру своего проекта или, по крайней мере, пытаюсь понять, что будет полезно в моем случае.
** Простой вариант использования. У меня будет несколько тысяч профилей в бэкэнде, и мне потребуется внедрить быструю поисковую систему. Так что эластичный поиск в этом случае выглядит идеально. Каждый раз, когда обновляется профиль, индекс обновляется с помощью асинхронной задачи.
Мой вопрос сейчас: если я хочу внедрить систему кеширования для детализации профиля. Должен ли я придерживаться упругого поиска и поместить эти данные в свой индекс? Или использовать Redis и сделать что-то вроде profil_id => data?
Я думаю, что оба звучат хорошо, проблема в том, что когда профиль обновляется, мне придется очищать его после переиндексации в asticsearch. Если я хочу увидеть изменения в моем бэкэнде.
Так что я могу сделать? Спасибо вам большое!
2 ответа
Вы должны рассмотреть возможность использования RediSearch. Использование RediSearch может предоставить вам решение для ваших нужд, обеспечивая как производительность Redis, так и полнотекстовую поддержку.
Elasticsearch и redis в основном предназначены для решения двух разных задач: одна выполняет индексацию, а другая - кэширование. Redis предназначен для того, чтобы возвращать уже запрошенные данные как можно быстрее, тогда как Elasticsearch - это поисковая и аналитическая система, она идеально подошла бы для случая использования, когда вам нужно внедрить быструю поисковую систему, и она будет более производительной, чем любая оперативная память. хранилище структуры данных или кэш, такой как redis(при условии, что ваши поиски будут сложными, будут задействованы некоторые агрегации / фильтры).
Проблема заключается в обновлениях профиля. Так как обновления вашего профиля не так часты, вы можете на самом деле делать частичные обновления индекса ES, а не делать переиндексацию. Поэтому, когда человек обновляет свой профиль, получают набор изменений (измененные данные) и частичное обновление конкретного документ в ES Index. Вы можете увидеть, как это делается здесь, частичное обновление.
Этот конкретный ответ на стекопоток поможет вам кешировать против индексации