代码之家  ›  专栏  ›  技术社区  ›  Bill Leeper

在ruby on rails中存储全局散列

  •  0
  • Bill Leeper  · 技术社区  · 15 年前

    我正在寻找一个应用程序,在那里我需要建立一个图形结构的用户朋友模型。我需要深入几个层次,这样在mysql中使用标准sql将不会工作,因为循环引用。我已经研究了可用的图形算法,它们包括将整个记录集加载到一个图形对象中,然后对其执行操作。每次手术我都负担不起。

    我想把graph对象作为一个全局对象存储在内存中,然后对它进行调用和更新。然而,由于rails通过创建单独的进程来扩展,我将遇到一个几乎是即时的同步问题,因为一个rails进程只会扩展到几个同时的用户。

    有没有人知道如何将一个对象存储在rails中,并在两个请求之间以及多个mongrel/whatever进程之间保持同步?

    在这一点上,我正在研究图形操作的Java服务,因为它使用线程模型而不是进程模型来缩放。我可以扩展到足够大的规模,我暂时不必处理扩展问题。

    不过,我希望有一个全rails解决方案,因为它将更容易维护和构建。

    3 回复  |  直到 15 年前
        1
  •  1
  •   August Lilleaas    15 年前

    一种选择是构建一个小型机架应用程序,将数据加载到其中。查询和计算您的数据的逻辑将在该机架应用程序中。可以使用对localhost的普通http调用来传输需要传输的内容(生成的html?还有别的吗?)从Rack应用程序到Rails应用程序。

    这基本上是为rails应用程序提供多个进程的解决方案。我确信有更好的解决方案,比如memcached、nosql数据库等等。

        2
  •  1
  •   grisha    14 年前

    Redis 是你要找的工具。

        3
  •  0
  •   Daniel Auger    15 年前

    听起来您可能需要一个分布式哈希表,或者像couchdb这样的东西作为rdbms的替代品。