2016-02-08 5 views
0

Я хотел бы понять, что лучше всего подходит для операций с базой данных.Должен ли я закрыть соединение Mongo после некоторой операции?

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

Кроме того, я использую redis для очереди с node-resque, и у меня такие же сомнения. Я оставляю оба открытым, я никогда не закрываю, я делаю что-то неправильно?

Кроме того, я расширяю экспресс-экземпляр - приложение - с операцией очереди, поэтому я могу использовать в любом месте, это тоже неправильно?

Спасибо.

ответ

0

MongoDB

Это лучшая практика, чтобы открыть соединение на инициализации приложения и либо имеет драйвер MongoDB выбора управление пулом соединений (как большинство водителей, включая водитель JS) или получить новые подключения, что " master "(как это практикуется в драйвере Go).

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

Redis

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

0

Стандартная передовая практика для MongoDB заключается в постоянном открытии соединения. Об этом заявил главный разработчик MongoDB nodejs here.

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