【发布时间】:2014-10-15 17:59:34
【问题描述】:
我正在从 Heroku 迁移到 Openshift,因为我的应用大量使用了 socket.io。我似乎已经正确连接了 redis,但只是想确定一下。
当我输入这个时:
rhc cartridge-status redis -a myapp
我明白了:
Using smarterclayton-redis-2.6 (Redis) for 'redis'
RESULT:
Redis is running
master (receives writes), mode sharded
Connect to: xxhostnumberxx-myapp.rhcloud.com:xxportnumberxx password:xxsomepasswordxx
然后我像这样设置 ENV 变量:
rhc set-env OPENSHIFT_REDIS_HOST=xxhostnumberxx-myapp.rhcloud.com -a myapp
rhc set-env OPENSHIFT_REDIS_PORT=com:xxportnumberxx -a myapp
rhc set-env REDIS_PASSWORD=password:xxsomepasswordxx -a myapp
然后在我的 app.js 中有:
var redis;
// Openshift redis connection
if (process.env.OPENSHIFT_REDIS_HOST) {
var redisHost = process.env.OPENSHIFT_REDIS_HOST;
var redisPort = process.env.OPENSHIFT_REDIS_PORT;
var redisPass = process.env.REDIS_PASSWORD;
redis = require('redis').createClient(redisPort, redisHost);
redis.auth(redisPass);
}
// Localhost
else {
redis = require('redis').createClient();
}
我的 req.session is undefined 错误消失了(我正在使用 redis 进行会话管理),它似乎正在工作。
我只是想确保我做对了。我设置的变量是正确的并且不会改变吗?或者有没有办法动态设置它们?
【问题讨论】:
标签: node.js redis openshift openshift-client-tools