Tag: memcached

如何将caches_action配置为适用于多种格式?

我有一个rails动作,它响应各种格式的请求,包括AJAX请求,例如: def index # do stuff respond_to do |format| format.html do # index.html.erb end format.js do render :update do |page| page.replace_html ‘userlist’, :partial => “userlist”, :object=>@users page.hide(‘spinner’) page.show(‘pageresults’) end end end end 我已使用memcached将此操作设置为缓存: caches_action :index, :expires_in=>1.hour, :cache_path => Proc.new { |c| “index/#{c.params[:page]}/#{c.request.format}” } 这种模式似乎适用于缓存HTML结果,但不适用于JS结果。 当JS部分不是来自缓存时,它总能正常工作。 但是,当存在缓存命中时,页面不会更新。 什么可能导致这个和什么是修复? 更新:深入研究这一点,看起来缓存中的请求获取mime类型’text / html’而不是’text / javascript’。 但是我不知道如何解决这个问题 – 它是memcached的怪癖吗? […]

Rails + Dalli memcache gem:DalliError:没有可用的服务器

嗨,我在服务器上设置我的Rails项目时遇到了麻烦,因为apache一直在抱怨 DalliError: No server available 。 我在我的ubuntu机器上安装了memcached ,但它仍然无效。 我的rails项目在环境/ production.rb中也有config.cache_store = :dalli_store, ‘localhost:11211’, { :namespace => “production” } 。 我该如何调试? 我的日志显示在每个请求之前: localhost:11211 failed (count: 6) DalliError: No server available telnet到11211: root@s2:/usr/local/www/production/current/log# telnet localhost 11211 Trying 127.0.1.1… telnet: Unable to connect to remote host: Connection refused

Rails:预定任务来预热缓存?

我使用以下内容来缓存使用memcached的缓慢加载页面: caches_action :complex_report, :expires_in => 1.day 控制器操作受Devise身份validation保护。 页面当前在用户第一次请求时被缓存。 然后从缓存中提取当天的后续请求。 这个问题是初始请求需要20-30秒才能加载。 是否可以通过计划任务预先填充缓存? 任何建议非常感谢。

Rails缓存数据库查询和最佳实践

我网站上的数据库负载变得非常高,所以现在是时候缓存常见查询,这些查询每小时调用1000次,结果不会发生变化。 例如,在我的城市模型中,我执行以下操作: def self.fetch(id) Rails.cache.fetch(“city_#{id}”) { City.find(id) } end def after_save Rails.cache.delete(“city_#{self.id}”) end def after_destroy Rails.cache.delete(“city_#{self.id}”) end 所以现在,当我第一次点击数据库时,我可以使用City.find(1),但接下来的1000次,我从内存中得到结果。 大。 但是大多数对city的调用都不是City.find(1)而是@ user.city.name,其中Rails不使用fetch但是再次查询DB …这有意义但不完全是我想要它做的。 我可以做City.find(@ user.city_id),但那很难看。 所以我向你们提问。 聪明人在做什么? 这样做的正确方法是什么?

Memcached大小限制到底与文件系统实体库有什么关系?

下午好, 我把Memcached连接到Heroku的应用程序中。 免费托管计划的限制是Memcached为5MB,Memcachier为25MB。 作为几乎所有事物的新手,我只是希望澄清这代表什么。 我在配置文件中设置了DalliStore,并为Rack :: Cache设置了典型选项。 我的Metastore在Memcache中,并且在文件系统上设置了权限存储。 问题: 这是否意味着我的5 / 25MB限制仅被我存储的关于每个缓存片段的元信息使用? 这意味着我能够在免费计划中存储大量信息吗? Rack :: Cache和Memcache(通过Dalli商店)之间的细分/故事究竟是什么?它们是否有不同的用途? 他们做同样的事吗? 即以下代码是多余的 config.cache_store = :dalli_store 和 config.action_dispatch.rack_cache = { :verbose => true, :metastore => Dalli::Client.new, :entitystore => ‘file:tmp/cache/rack/body’, :allow_reload => false }

Rails和缓存,在memcache和redis之间切换是否容易?

是否有一个共同的api,如果我在Redis或Memcached之间切换,我不需要更改我的代码,只需配置设置?

当会话存储在memcached(Rails)中时,用户会占用其他用户的会话

在Memcached中存储会话时,我有一个非常奇怪的问题。 有些用户不时会参加其他人的会话。 例如John,以Maria,Maria和Chris等身份登录。 我使用Rails 2.3.4,但早期版本的Rails也出现了同样的问题。 我只使用一个Memcache服务器,它在同一台机器上运行。 调试这个问题是我无法重现它。 如果有人能指导我如何解决这个问题或调试它,我将非常高兴。 如果您使用Memcached进行会话并且您分享您的示例配置,我也会很高兴。 这些是我的配置: # memcache options memcache_options = { :c_threshold => 10_000, :compression => false, :debug => false, :namespace => ‘app_prod’, :readonly => false, :urlencode => false, } memcache_servers = [‘localhost:11211’] CACHE = MemCache.new(memcache_options) CACHE.servers = memcache_servers config.cache_store = :mem_cache_store, memcache_servers, memcache_options config.action_controller.session_store = :mem_cache_store config.action_controller.session = { […]

我们如何在Memcached读取上阻止Ruby on Rails,以免它占用CPU?

我们有一个守护进程,它扫描表中的脏位,然后批量调度脏行到delayed_job。 为了避免select from data where dirty = 1进行常量select from data where dirty = 1 ,我们设置了一个memcached屏障,它包装了表扫描,就像 loop do # daemon until Rails.cache.fetch(“have_dirty_rows”) do end page = 1 loop do # paginate dirty rows dirty_batch = paginate(#:select => “*”, :order => “id”, :per_page => DIRTY_GET_BATCH_SIZE, :conditions => {:dirty => 1}, :page => page) if dirty_batch.empty? Rails.cache.write(“have_dirty_rows”,false) break […]

gem install memcached失败

在做 gem install memcached 以下错误被抛出。 …. …. checking for pod2man… /usr/bin/pod2man ./configure: line 22468: syntax error near unexpected token `sasl,,’ ./configure: line 22468: ` AC_LIB_HAVE_LINKFLAGS(sasl,,’ make: *** [config.status] Error 2 *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more […]

你最喜欢的Ruby on Rails书籍是什么?为什么?

我正在寻找一些关于RoR的书籍,以帮助自学如何构建可扩展的RoR应用程序。 我已经阅读了RailsS​​pace的书,并且今晚开始了Rails Way的书。 一些感兴趣的主题是: REST – 考虑使用亚马逊的SimpleDB 有效地使用RSpec memcached – 服务器架构和代码实现 mongrel – 服务器架构 MySQL的