关于Heroku:App是Nodejs,Express,WebSockets ...... 我正在一个小的免费Heroku实例上测试一个应用程序。 我通过OpenRedis和RedisToGo拥有自己的Redis数据库实例。 那些没有通过Heroku插件提供,但直接来自提供商。 我在本地运行时连接到它们很好。通过Heroku连接它们需要做些什么特别的事情? 我有点希望避免特殊的Heroku特定环境变量,但我很乐意在必要时使用它们。 但我绝对需要避免通过Heroku配置Redis插件的必要性 同样,我已经将我的数据库实例直接与相关提供商一起配置。
在NODE_ENV=production npm start
下本地工作正常,这表明我的应用程序应该连接到远程Redis实例(RedisToGo和/或OpenRedis)而不是本地Redis服务器。
我正在使用Redis至少做三件事:
会话存储:: Connect-Redis ::这在本地工作正常(app服务器在本地运行但连接到远程Redis实例)并且似乎也可以在Heroku上工作 - 我已经通过刷新数据库进行检查然后将一个稍微新的版本推送到Heroku并刷新会话变量键。
Database :: Node-Redis ::这在本地工作也很好(也是在本地运行的app服务器,但连接到数据库的远程Redis实例),但似乎没有在Heroku上工作。
< / LI>WebSockets Transport Pub / Sub ::我没有彻底测试过。我猜它在起作用,但对于这个问题并不重要。
是Heroku实例能够通过Connect-Redis客户端连接到Redis实例,但无法通过数据库客户端连接到同一个Redis实例。而我本地运行的版本能够通过这两个客户端连接到同一个(远程)实例。 (我已通过终端客户端验证了这些发现,使用flushall
命令并等待刷新密钥。)
非常感谢任何见解。
我将通过下面的评论发布我的编辑和更新,因为它们有时间戳。答案 0 :(得分:0)
事实证明,我们无法连接到数据库(不知道为什么因为我不知道Heroku在AWS上配置的内部因素)正常情况。通过Heroku的方式;我们需要使用heroku config:set
命令设置环境变量。 OpenRedis提供了一个终端就绪字符串,可以为自我配置的RedisToGo实例添加类似的东西,但我还没有完成它。