Подтвердить что ты не робот

Кеширование NoSQL или Ehcache?

Я строю Планировщик маршрутов Webapp используя Spring/Hibernate/Tomcat и базу данных mysql, У меня есть база данных, содержащая только данные для чтения, такие как координаты остановки шины, времена шины, которые никогда не обновляются. Я пытаюсь заставить приложение работать быстрее, каждый раз, когда приложение запускается, он будет преформировать около 1000 просмотров в базу данных для расчета маршрута.

У меня есть Ehcache, который значительно улучшает чтение из базы данных. Теперь я устанавливаю распределенное кеширование терракоты + Ehcache для совместного использования кеша с несколькими JVM Tomcat. Это кажется немного сложным. Я пробовал memcached, но он выполнялся не так быстро, как ehcache.

Мне интересно, лучше ли подходит MongoDb или Redis. У меня нет опыта работы с nosql, но я был бы признателен, если у кого-нибудь есть идеи. Мне нужен быстрый доступ к базе данных только для чтения.

4b9b3361

Ответ 2

У меня есть Ehcache, который значительно улучшает чтение из базы данных. Теперь я устанавливаю распределенное кеширование терракоты + Ehcache для совместного использования кеша с несколькими JVM Tomcat. Это кажется немного сложным.

Поскольку ваши данные доступны только для чтения, у меня возникает соблазн сказать, что вы могли бы жить без распределенного и реплицированного кэширования, если только накладные расходы начальной загрузки кэшей , что важно (и в этом случае настроить Ehcache не так сложно, вам просто нужно знать, куда вы идете). Итак, если вы считаете, что вам действительно нужно это, возможно, попросите более конкретные рекомендации.

Мне интересно, лучше ли подходит MongoDb или Redis. У меня нет опыта работы с nosql, но я был бы признателен, если у кого-нибудь есть идеи. Мне нужен быстрый доступ к базе данных только для чтения.

Прежде всего, если вы идете по пути NoSQL, забудьте Hibernate (возможно, это не проблема). Во-вторых, я действительно задаюсь вопросом, что сложнее: (не) настройка Ehcache для распространения (я все еще не убежден, что вам это нужно) или изменение вашего подхода к чему-то радикально отличающемуся (что большинству корпоративного бизнеса VAST не нужно), В-третьих, ничего не будет быстрее, чем чтение данных из памяти в той же JVM.

Подводя итог: я бы подумал: не использовать распределенное кэширование (и попрощаться с проблемой конфигурации) или 2. настроить Ehcache для распределенного кэширования (я думаю, что это менее сложно, чем изменение всего вашего подхода).

Ответ 3

Прежде всего, mongodb не является кешем как таковым. его постоянное хранилище данных, подобно mysql, является постоянным хранилищем данных.

Итак, теперь ваш вопрос сводится к "должен ли я использовать ehcache или redis". используя ehcache, я могу сказать вам, что это довольно хорошее решение для распределенного кеша, который выполняет репликацию/кластеризацию, недействительность кэша, мониторинг и возможности инструментария.

так как ваши данные только для чтения, будет работать простая распределенная карта, такая как hazelcast. его довольно просто использовать.