我在应用程序中使用memcached(gem memcache-client
),但我想同时使用内存缓存存储。目前,我有我的application.rb
如下:如何同时使用Memcache和Ruby On Rails默认的内存存储?
config.cache_store = :mem_cache_store, {:namespace => "my_namespace_#{Rails.env}"}
,这正常工作与命令,如Rails.cache.write(...)
我如何使用ActiveSupport::Cache::MemoryStore
我的一些车型,并在同一时间使用memcached的其他我到现在为止的理由?
我知道ActiveSupport::Cache.lookup_store
会还给我一个新的MemoryStore
对象。但是,从这一点我不知道如何继续?例如,我在哪里放这个命令?我在哪里存储结果对象?以后如何从模型代码中访问此对象?或者我应该采用完全不同的方式?
在此先感谢您的帮助。
没有真正回答你的问题,但只是好奇,为什么你在你的应用程序需要两个店? – leonardoborges 2012-01-13 11:28:19
我想我可能会为我想要立即访问的某些型号获得更好的性能。而不是必须进行进程间通信(当memcached在同一台服务器上)或intermachine通信(当memcached在不同的服务器上时),我将从进程内存访问我的对象。 – 2012-01-13 11:55:47
但是,我明白了,那是因为你只有一个进程正在运行。如果你有多个进程,内存存储将不会被共享,所以如果你的用户点击一个没有加载对象到内存的进程,它会再次打到DB,每个进程有一次。这并没有真正扩展,总体来说你最好使用memcached。除非你正在运行一个流程应用程序,而且这个应用程序不会很快改变。 – leonardoborges 2012-01-13 12:57:12