设置redis ENVvariables – 在Openshift上的Node.js
我从Heroku迁移到Openshift,因为我的应用程序大量使用socket.io。 我似乎已经正确地连接了redis,但只是想确认一下。
当我input这个:
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
然后我设置ENVvariables如下所示:
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进行会话pipe理)。
我只是想确保我做对了。 我设置了正确的variables而不会改变吗? 还是有办法dynamic设置它们?
对我来说,这看起来不错。 你正在使用rhc set-env
正确设置环境variables,既然你使用的是主机名而不是IP,它不应该改变。