【问题标题】:Redis: share data in heroku with more than one dynosRedis:与多个测功机共享heroku中的数据
【发布时间】:2014-11-14 06:33:16
【问题描述】:

我是使用 heroku 的新手,我会选择 4 个 2X dynos 实例,我担心 AFAIK dynos 之间没有共享数据。

所以我的问题是,有没有办法在所有 redis(https://addons.heroku.com/rediscloud#250) 实例中保存数据(位于每个测功机上)

【问题讨论】:

    标签: heroku redis


    【解决方案1】:

    您的困惑源于假设 Redis 在每个测功机上本地运行。当您使用诸如 Redis Cloud 之类的附加组件时,Redis 位于所有 dyno 之外,并在由服务提供商(本例中为 Redis Labs)运营的独立服务器上运行。

    【讨论】:

    • 非常感谢!现在我明白我必须把注意力集中在我必须选择什么样的 Redis Cloud 计划上。
    • 确实如此。这些计划基于您的数据大小,因此只需选择适合您需求的计划即可。不过不要太担心,您可以随时更改计划以增加(或减少)您支付的 RAM 数量,而 Redis Cloud 最好的一点是这涉及任何停机时间,数据丢失或应用配置更改:)
    • 现在我确定我会选择四个 2X 测功机,因为我的请求只是发送最大长度为 100 的 json 对象。最多有 800 个并发请求。
    【解决方案2】:

    只要您的所有 dyno 都属于同一个应用程序(似乎就是这种情况),它们都将共享相同的附加组件,包括 Redis Cloud。虽然您的应用程序将在这些 dyno 上分布运行,但它的所有连接都将打开到同一个 Redis 数据库(由 `REDISCLOUD_URL' env var 定义),因此能够共享其中的数据。

    【讨论】:

    • 再次感谢@ItamarHaber,据我所知,每个 dynos 实例都有自己的 RAM,redis 在 RAM 中工作(每个实例的每个 ram)。这是我不明白的部分,redis如何共享。我担心如果一个实例下降,我会丢失敏感数据,然后我正在研究如何重新加载这些实例中的所有数据。
    猜你喜欢
    • 2014-02-07
    • 2015-07-29
    • 1970-01-01
    • 2012-06-15
    • 2014-05-03
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多