Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Openshift上设置redis环境变量--Node.js_Node.js_Redis_Openshift_Openshift Client Tools - Fatal编程技术网

在Openshift上设置redis环境变量--Node.js

在Openshift上设置redis环境变量--Node.js,node.js,redis,openshift,openshift-client-tools,Node.js,Redis,Openshift,Openshift Client Tools,我正在从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 Conn

我正在从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未定义时工作
错误消失(我正在使用redis进行会话管理)


我只是想确定我做得对。我设置的变量是否正确且不会改变?还是有办法动态设置它们?

是的,我觉得很好。您正在使用
rhc set env
正确设置环境变量,并且由于您使用的是主机名而不是IP,因此不应更改

我唯一的疑问是,
xxhostnumberxx
是一个24位的字符串,它似乎可以随机更改。所以这是一个永久值?除非你改变那个应用,否则主机名永远不会改变。