2014-01-21 6 views
0

Я создаю новостной сайт. В настоящее время я использую mySQL в качестве основного хранилища данных и redis для ведения списка статей для фида домашней страницы пользователя. когда пользователи нажимают на статью на главной странице, я подключаюсь к mysql, чтобы получить основное содержание статей, комментариев и связанных материалов.Должны ли все данные храниться в redis?

Является ли это лучшей практикой, если я храню все данные статьи в redis? Я имею в виду вместо того, чтобы подключаться к mysql для получения всего содержимого статьи, я сохраняю основное содержимое статей в redis, чтобы производительность могла быть улучшена?

+0

Вы хотите использовать Redis в качестве своего * только * хранилища данных или как ваш * primary *, и пусть MySQL будет * вторичным *? – Agis

+0

MySQL - это мой основной магазин данных. Я использую Redis в качестве независимого хранилища данных для повышения производительности. – ipkiss

ответ

1

Это мнение основано, так что вот мое мнение. Redis предназначен для использования в качестве кеша. Вам нужно решить, что делать в кеше, и если на самом деле необходимо кэширование. Это зависит от масштаба вашего приложения. Если статьи сильно меняются, и у вас нет огромной базы пользователей/посетителей, я не думаю, что Redis необходим вообще. Помните, что вы не можете искать там вещи. Вы не можете пойти SELECT articles WHERE author='foo' в Редис.

Если, с другой стороны, вы наблюдаете значительное увеличение загрузки БД из-за многих пользователей, вы можете предварительно визуализировать HTML для всех статей и поместить их в Redis. Это обеспечит загрузку базы данных и веб-сервера. Но только если вы уже знаете, какие статьи вы хотите отображать.

1

Это зависит от роли, которую redis должен принять в вашем случае.

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

Если вы хотите, чтобы redis был основным источником ваших данных, что это не похоже на ваш случай, вы также можете решить все отодвинуть от MySQL. При низких и «редко» изменяющихся данных это может стоить того. Но не забудьте выполнить резервное копирование базы данных и синхронизацию с HDD после изменений.

Смежные вопросы