2016-10-21 4 views
0

Я пытаюсь использовать redis на узле express server для хранения пользовательских сеансов, используя библиотеку connect-redis (on Github). И я нахожу этот блок настройки хорошо работает:Нужно ли указывать клиента для connect-redis?

var app = express(); 

app.use(session({ 
    secret: 'hahahahahahahahahaha', 
    cookie: { maxAge: 36000000 }, 
    store: new redisStore(), 
})) 

Примечание Я не проходил никакого Params в new redisStore() и он также работает на данный момент (в его документации и пр client передаются), думает, он использует локальный и порт по умолчанию по умолчанию.

Но я беспокоюсь, если я буду размещать свой сервер на AWS EC2 в будущем, который является общим сервером, будет ли это проблемой, если я не укажу клиента? Скажем, будут ли конфликты с другими серверами, размещенными на этом EC2?

ответ

1

используя здесь клиент redis. Однако вы просто отказались от конфигурации клиента. Это будет проблемой в будущем, поскольку (предположительно) вы будете развертываться на AWS в кластере. Клиент redis должен быть обычным для всех экземпляров.

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

Пройдите http://redis.io/topics/partitioning для получения дополнительной информации.

Идея состоит в том, чтобы иметь один (или кластер) экземпляров redis, которые запускаются независимо от ваших AWS-экземпляров, чтобы состояние было общим для всех ваших экземпляров. Это почему вы должны иметь полный контроль над Redis клиента

+0

Спасибо за быстрый ответ - только то, что мне нужно –

+0

В этом случае не нужно использовать redis.createClient(), или просто указать хост & порт? –

+1

Вы можете просто указать хост и порт на данный момент, но когда вы развертываете в распределенный кластер при производстве, и вам нужно увеличивать масштаб, вам нужно реализовать какой-то распределенный кеш. Ссылка, которую я привел в ответе, содержит более подробную информацию – nikjohn