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

Postgres Hstore против Redis - производительность

I читать о HStores в Postgres то, что предлагает Redis.

Наше приложение написано в NodeJS. Два вопроса:

  • По производительности, является ли Postgres HStore сопоставимым с Redis?

  • для хранения сеанса, что бы вы порекомендовали - Redis или Postgres с другим типом данных (например, HStore или, может быть, даже обычной реляционной таблицей)? И насколько плох один вариант против другого?

Другое ограничение состоит в том, что нам нужно будет использовать данные, уже находящиеся в PostgreSQL, и объединить их с активными сеансами (которые мы не уверены, где хранить в этот момент, если в Redis или PostgreSQL).

Из того, что мы прочитали, мы указали на использование Redis в качестве диспетчера сеансов, но из-за ограничения PostgreSQL мы не уверены, как объединить обе и возможные проблемы производительности, которые могут возникнуть.

Спасибо!

4b9b3361

Ответ 1

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

Redis кажется хорошим вариантом для ваших данных сеанса, или heck даже хранить в cookie или на вашей стороне Javascript. Но если вам нужны данные из вашей базы данных по каждому запросу, то, возможно, даже не стоит включать Redis. Это очень зависит от вашего приложения.

Ответ 2

Использование PostgreSQL в качестве диспетчера сеансов - это, как правило, плохая идея.

Для более старых, чем 9.1, был физический предел транзакции в секунду на основе постоянных параметров среды. Для управления сеансом вам обычно не требуется MGA (потому что нет столкновения), и это означает, что MGA - это служебные данные, а базы данных без MGA и ACID должны быть значительно быстрее (10 или 100).

Я знаю пример использования, где PostgreSQL использовался для управления сессиями, а производительность была действительно ужасной и нестабильной - это было eshop с около 10000 живыми сессиями. Когда управление сеансом было перенесено в memcached, производительность и стабильность были значительно увеличены. PostgreSQL можно использовать для 100 живых сеансов без проблем. Для более высоких номеров есть лучшие инструменты.