问题标签 [dalli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails-3 - 当 Memcached 不可用时,nil:NilClass (NoMethodError) 的未定义方法“each”
我的生产应用程序使用 Memcachier 作为 Rails 的缓存存储。客户端是 dalli,它是使用 :dalli_store 和 memcachier gem 在我的应用程序中配置的。
如果 Memcachier 在我的日志中出现故障,我会看到以下错误:
app error: undefined method
每个' 为 nil:NilClass (NoMethodError) `
Exceptional 不会警告我这些异常。
有没有办法让应用程序更有弹性并避免这种异常?
ruby-on-rails - Rails:试图了解如何更好地进行片段缓存
在我的应用程序中,我试图合并更好的片段缓存。
像这样调用片段是否是最佳实践:
ruby-on-rails - Rails + Dalli memcache gem:DalliError:没有可用的服务器
嗨,我在服务器上设置 Rails 项目时遇到问题,因为 apache 一直在抱怨
DalliError: No server available
.
我安装memcached
在我的 ubuntu 机器上,但它仍然无法正常工作。我的 rails 项目也在config.cache_store = :dalli_store, 'localhost:11211', { :namespace => "production" }
环境/production.rb 中。我将如何调试这个?
我的日志在每个请求之前显示:
远程登录到 11211:
ruby-on-rails - telnet localhost 11211 失败。如何打开端口?
我有一台运行 memcached 的服务器,但它不工作。因此,当我尝试通过端口 11211 远程登录到 localhost 时,它失败了。我将如何打开端口?
ruby-on-rails - 当 Dalli 中的缓存命中时,如何防止 :@new_record 的奇怪插入?
我正在使用 Dalli 和 Memcachier 在 Heroku 上实现缓存,当我获得缓存命中时,它会将 Symbol 添加到返回的数组(或哈希,在另一个示例中)。这个符号 :@new_record 与我返回的结果没有任何关系,它被插入到不同类型的缓存提取中,我无法在 SO/Google 上找到其他人解决这个问题. 代码库范围的查找不返回“new_record”的结果。
这种添加发生在我尝试添加缓存的两个地方。我不知道如何首先防止它发生,但我通过检查返回集中每条记录的类来躲避它在这个特定用途中的影响,如果它不是供应商,则不呈现供应商的个人资料。这是一个丑陋的解决方案,我想从源头解决问题。
如果您有任何其他问题/需要我发布更多信息,请告诉我,感谢您的帮助。
我正在使用缓存的方法:
我现在正在使用此代码的最后一行筛选出 :@new_record:
错误,如果我不筛选出@new_record [这不是从上面的代码中删除行,而是从另一个地方我尝试使用基于类的测试不可行的缓存]:
application.rb 的相关位:
production.rb 的相关位:
Gemfile 的相关位:
heroku - 在 Heroku 上使用 Dalli 缓存 Jbuilder 的片段
我正在尝试将片段缓存与 Jbuilder 一起使用,因为其中一个视图需要相当长的时间来渲染(只有视图渲染可能需要 2500 毫秒+
请注意,这在其他调用中确实有效,但这个似乎不起作用,我不知道为什么。第二:这适用于我的本地机器,但在 heroku 中失败。
这是heroku中的错误:
这是我尝试使用片段缓存的简单部分:
和产品部分:
- 请注意, app_style 部分在任何地方都可以使用,并且可以与其他缓存视图一起使用
ruby-on-rails - rails如何使低级缓存记录过期?
我想将我的模型对象缓存在低级别(也称为低级别缓存),并且我正在这样memcached
做dalli
。我在 FOO 类中重载了 find 方法:
这里唯一的问题是关于用户更新。我想在用户更新时使该缓存过期,但我没有找到类似Rails.cache.expire(key)
. 有什么合适的吗?
ruby-on-rails - 强制 ActiveRelation 使用 rails 缓存
我有一张languages
几乎没有任何变化的桌子。我试图避免在这个表上进行数据库查询,而不是初始缓存。
只要我使用find_in_cache
我定义的方法之一,一切都会很好。
我的问题是,我怎样才能强制ActiveRelation
使用缓存。
例如,考虑以下用户模型:
当我访问@user.native_language
时,它language
从数据库中查询。我非常感谢任何防止这种情况发生的想法。
我知道我可以做到以下几点:
但是,我希望有一个更透明的解决方案,因为我的很多表都引用了表,将这些方法添加到所有这些模型中languages
会很麻烦。cached
ruby-on-rails - 无法使用 Dalli 缓存模型
我很难缓存一个对象。
tracked_point.rb
创建a 时tracked_point
,我的check_infractions
回调发生(从技术上讲after_save
,但那是因为我也希望它运行update
)。
console:
这会导致错误:
You are trying to cache a Ruby object which cannot be serialized to memcached.
这发生在self.write_to_cache
被调用的线路上。所以我手动尝试运行该代码:
同样的错误。让我们尝试创建一个TrackedPoint
.
同样的错误。
TrackedPoint
但是,如果我从数据库中提取最后一个,我可以缓存它:
任何想法为什么在我的after_save
回调和对象创建中缓存失败但是如果我从数据库中提取对象我可以缓存它?
- 红宝石 1.9.3-p392
- 导轨 3.2.13
- 达利 2.6.4
ruby-on-rails - "You are trying to cache a Ruby object which cannot be serialized to memcached."
I've been having some caching problems with a footer that is shared across multiple sites, and I'm wondering what might be up. Here's the error message and the backtrace:
Here's the place where the cache retrieval is being defined:
And here's the place in the view where this is being called.
What am I doing wrong here? Any ideas would be greatly appreciated. Thanks!