2012-05-01 43 views
0

我有一个包含多维数据的postgresql数据库。我所做的是我写了一个数据结构,将所有数据库行排序为树形格式。现在数据库很大,所以我不想每次从浏览器请求时都生成树。 Id喜欢做的是在特定时间段内构建一次树,并将其保存在服务器的内存中。Rails:在服务器上的内存中缓存树

该树只读的方式。所以现在每次请求进入树时都不需要生成新的,它已经存在了。

我该如何做到这一点。我不是专家程序员,只是初学者,绝对是网络编程的新手。所以其中一些概念对我来说是新的。

但是,如果您可以请点我在这里涉及的概念的正确方向,我可以谷歌休息。

或者如果你有真正的联系或例子,将是太棒了。

谢谢

+0

这个电视广播应该很好地解释你可以在你的情况下做什么http://railscasts.com/episodes/115-caching-in-rails-2-1 –

回答

1

有几种方法可以解决这个问题。它取决于你想要变量的应用程序有多接近。如果您真的希望让它们位于应用程序的顶端,为了尽可能快地使用它,您可以使用全局变量“$ tree”并挂接到应用程序流。其他选项可能包括memcached,这与应用程序仍然相当接近。对于可以在应用程序实例之间共享的内存数据库,Redis将是一个很好的选择,因为它是您查询的NoSQL数据库。尽管与应用程序不太一样。

通常,这些是您的主要选择。应用程序内变量可以保存请求。应用程序框架将帮助变量保存请求并为您提供查询机制。或者,内存数据库可让您从多个实例快速存储和查询。每一个都是一个可行的选择,但我敢肯定你会因为使用一个直接的全局变量而产生大量的“社区”瑕疵(这种做法因为缺乏线程安全和其他此类问题而被认为是不干净的)。