4 ответов:
игнорируя всю дискуссию NoSQL vs SQL, я думаю, что лучший подход-объединить их. Другими словами, используйте MySQL для некоторых частей системы (сложные поиски, транзакции) и redis для других (производительность, счетчики и т. д.).
по моему опыту, проблемы производительности, связанные с масштабируемостью (много пользователей...) в конечном итоге заставляет вас добавить какой-то кэш, чтобы удалить нагрузку с сервера MySQL, и redis/memcached очень хорош в этом.
Я не эксперт Redis, но из того, что я собрал, оба довольно разные. Редис:
- не является реляционной базой данных (нет фантазии организации данных)
- сохраняет все в памяти (быстрее, меньше места, вероятно, менее безопасно в случае аварии)
- менее широко развернут на различных веб-хостингах (если вы не размещаете себя)
Я думаю, что вы можете использовать Redis, когда у вас есть небольшое количество данных, которые не нуждается в реляционной структуре, которую предлагает MySQL, и требует быстрого доступа. Это могут быть, например, данные сеанса в динамическом веб-интерфейсе, к которому необходимо обращаться часто и быстро.
Redis также может использоваться в качестве кэша для некоторых данных MySQL, к которым будет очень часто обращаться (т. е.: загрузите его, когда пользователь входит в систему).
Я думаю, что вы задаете вопрос неправильно, вы должны спросить себя, какой из них больше подходит для приложения, а не какое приложение подходит для системы ;)
MySQL-это реляционное хранилище данных. Если настроено (например, с помощью innodb таблицы), MySQL-это надежный предложение хранилища данных кислоты операции.
Redis-это база данных NoSQL. Это быстрее (при правильном использовании) потому что он торгует скорость с надежностью (редко можно работать с fsync, так как это резко снижает производительность) и сделок (который можно аппроксимировать-медленно-с помощью SETNX).
Redis имеет некоторые очень аккуратные функции такие, как наборы, списки и отсортированных списков.
эти слайды на Redis перечислите сбор статистики и управление сеансами в качестве примеров. Есть также Твиттер clone написано с redis в качестве примера, но это не означает, что twitter использует redis (использование twitter MySQL с тяжелым кэшированием memcache).
MySql -
1) структурированные данные 2) кислота 3) Тяжелые транзакции и поиск.
направле -
1) неструктурированные данные 2) Простой и быстрый поиск. например-токен сеанса 3) используйте его для кэширования слоя.
Comments