假设我有一个包含100000个城市(id,city)的表格,我的应用程序的布局方式是我需要id->城市映射进行多次搜索。为每个此类转换运行SQL记录是禁止的。假设搜索结果页面显示1000条记录,我不想在现有查询的基础上添加1000条SQL查询。
我已经阅读过热切的加载原语(:includes),但这并不完全符合我的需要。我希望这张包含10万个城市的桌子驻留在记忆中。目前我正试图避免像redis这样的东西来避免一个依赖。
当rails / passenger启动时,我是否可以在此哈希表中推送共享内存区域,然后所有传入请求都可以从那里查找此持久哈希。
我相信如果我在我的application_controller中创建这样的哈希值,那么每次请求进入时都会初始化这个哈希值,这会使事情变得比我现在的更糟糕(或者不会?)
实例化所有请求可共享的共享持久内存的rails方式是什么?
答案 0 :(得分:0)
听起来你需要缓存,你只是想避免使用外部服务器。我已经使用Rails的内置内存缓存解决方案进行全局有效的大型计算,但我不想为外部缓存进行往返。
在您的环境中使用并调整此设置。
'children' => array(
$obj1,
$obj2,
),
当然,Rails Caching Guide包含所有细节。