Когда использовать Redis вместо MySQL для PHP-приложений?



Я смотрел на редиса. Это выглядит очень интересно. Но с практической точки зрения, в каких случаях было бы лучше использовать Redis над MySQL?

903   4  

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

    Ничего не найдено.