Tag: memcached

为memcached和Rails组合片段和对象缓存的最佳方法

假设您有一个显示最新post的页面片段,您将在30分钟后过期。 我在这里使用Rails。 30.minutes) do %> … 显然,如果片段存在,您不需要进行数据库查找以获取最新的post,因此您也应该能够避免这种开销。 我现在正在做的是在控制器中这样的东西似乎工作: unless Rails.cache.exist? “views/recent_posts” @posts = Post.find(:all, :limit=>20, :order=>”updated_at DESC”) end 这是最好的方法吗? 安全吗? 我不明白的一件事是,为什么密钥是片段的“ recent_posts ”和稍后检查的“ views/recent_posts ”,但是在看了memcached -vv以查看它的views/recent_posts之后我想出了这个。 另外,我不喜欢手动输入“ recent_posts ”的重复,最好将它保存在一个地方。 想法?

如何衡量Ruby对象的大小?

我有Memcache问题,我想知道什么是了解我创建的对象有多大的最佳方法。 我唯一的解决方案是将它们放入Memcache中,以字节显示它们的大小(顺便说一句,我可以自定义Memcache的输出吗?我想要可读的千字节……)。 谢谢, 凯文

使用带ruby的memcache客户端

我试图使用memcache-client连接创建的amazon elastiCache集群端点。 但我得到了错误 MemCache::MemCacheError: No connection to server (testcachecluster.u098ed.cfg.us e1.cache.amazonaws.com:11211 DEAD (Timeout::Error: execution expired), will retr y at 2013-06-21 11:34:15 +0530) from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me mcache-client-1.8.5/lib/memcache.rb:863:in `with_socket_management’ from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me mcache-client-1.8.5/lib/memcache.rb:370:in `block in set’ from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me mcache-client-1.8.5/lib/memcache.rb:886:in `with_server’ from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me mcache-client-1.8.5/lib/memcache.rb:361:in `set’ from (irb):5 from C:/ProgramData/RailsInstaller/Ruby1.9.3/bin/irb:12:in `’ 但是正确使用amazon elastiCache集群端点的localhost instread。 irb(main):006:0> m = MemCache.new(‘localhost:11211’) => irb(main):007:0> m.set ‘abc’, […]

ruby运算符|| =智能吗?

我有一个关于ruby中的|| =语句的问题,这对我来说特别有意义,因为我正在使用它来写入memcache。 我想知道的是,|| =先检查接收器,看它是否在调用该setter之前设置,或者它实际上是x = x || y的别名 x = x || y 在普通变量的情况下,这并不重要,但使用如下: CACHE[:some_key] ||= “Some String” 可能会做一个比简单变量集更昂贵的memcache写入。 奇怪的是,我在ruby api中找不到关于|| =的任何内容,所以我自己无法回答这个问题。 我当然知道: CACHE[:some_key] = “Some String” if CACHE[:some_key].nil? 会实现这个,我只是在寻找最简洁的语法。