问题标签 [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.

0 投票
2 回答
1265 浏览

ruby - 如何在 Dalli 一段时间后自动删除内存缓存

我不确定这是否可以做到。

我正在尝试将 Dalli 设置为在 3 秒后删除内存缓存(只是为了实验)

在代码中,我将 TTL 设置为 3 秒,然后我希望 3 秒后“test1”会被删除,但显然不会。因此,测试在第二个断言中失败。如何让 Dalli 在一定时间后使键/值过期?

非常感谢。

0 投票
2 回答
2681 浏览

ruby-on-rails - 如何删除 memcached 中的一系列键(使用 Dalli+RoR)

我正在运行 Ruby on Rails 并使用 Dalli gem 来访问 memcached。

问题:如何删除一系列键(不是多个,而是一个范围),例如:删除所有带有以“USERINFO”开头的键的 memcached 条目,换句话说,我如何使用通配符删除一个范围钥匙?

0 投票
1 回答
549 浏览

ruby-on-rails-3 - 使用 Memcached / Dalli 从缓存中排除图像

我最近使用 Dalli gem 为我的 Rails 应用程序使用 memcached heroku 插件实现了缓存。但我发现,当部署到 Heroku 时,它还会缓存我的所有静态资产,包括图像,这很快就会炸毁我的 memcached 大小。heroku 日志的示例看起来像

特别是对于索引页,对于每个不同的请求,缓存大小都会增加大约 5MB。这种行为是可配置的吗?我可以将 memcached 配置为仅缓存我的片段缓存而不是主动缓存每个页面中的每个图像吗?

0 投票
1 回答
295 浏览

ruby-on-rails - Rails 3,一个请求中的缓存对象不会持续到下一个请求

我正在写一个对象来缓存使用

当我打电话

在同一个请求中 - 检索对象。但是,当我在其他请求/其他 rails 进程中调用它时,我得到了 nil。

存储简单对象(数字、字符串、数字数组等)

Rails.cache 数据:

0 投票
2 回答
5555 浏览

ruby-on-rails - 如何使用正则表达式删除 memcached 中的键(使用 Dalli+RoR)。

如何使用正则表达式删除 memcached 中的键(使用 Dalli+Rails)

不适用于 memcached。有任何想法吗?

0 投票
1 回答
389 浏览

ruby-on-rails-3 - Rails.cache.fetch 插入额外的值

我们有一个页面显示我们的应用程序的顶级组。排行榜的计算成本很高,所以我们将结果缓存一个小时,如下所示:

这是在第一次写入缓存后出现错误。在控制台中四处寻找,我看到 Group.top_groups 返回一个项目数组,如下所示:

当我查看从缓存返回的结果时,它看起来如下:

有谁知道是什么导致@new_record_before_save 和“假”值被插入到缓存中该对象的所有条目中?

我们正在使用 Dalli、Memcached 1.4.9、Rails 3.2.4、Ruby 1.9.2

0 投票
1 回答
2372 浏览

ruby - Rails 3 缓存不起作用。达利

development.rb缓存配置

production.rb 缓存配置

在控制台中

为什么?

0 投票
0 回答
1239 浏览

ruby-on-rails - Rails 3.2.6 session[:_csrf_token] 与元标记不同

我有一个从 3.0.7 升级到 3.2.6 的 Rails 应用程序。我将 Dalli 和 memcached 用于我的会话存储。

自从我升级后,我开始遇到WARNING: Can't verify CSRF token authenticity错误,并且我的会话正在被重置。

我打电话给csrf_meta_tags我的标题。

在我的 ApplicationController 中,我已重写verify_authenticity_token以检查应用程序认为 csrf_token 是什么。

我从我的应用程序提交了一个表单,写入记录器的会话数据是: {"_csrf_token"=>"4OQ47F2py+l12lLSTnq0RTmyPbmPi2UGMZaPhMG6vVQ="}

这与页面上元标记中设置的值以及随表单提交的值不同: {"authenticity_token"=>"qMsdBkTHoBH09+X0tnyoPsbtc752yKjCVHddrcufd7g="}


问题解决了

事实证明这是由于配置错误。

我一直session_store在 config/initializers/session_store.rb 中设置配置:

这是为所有环境初始化的,但是在开发环境中,缓存的默认配置是config.perform_caching = false.

删除初始化文件并将会话存储配置移动到 production.rb 文件为我解决了这个问题。

我只是不确定为什么这在 3.0.2 中不是问题,而是在 3.2.6 中。

0 投票
1 回答
307 浏览

ruby - 当 nginx 获取 memcached 机架结果时显示添加的奇怪字符串

我在使用我的机架应用程序生成的页面时遇到了一些问题。

我将机架应用程序生成的页面存储在 memcache 中,并带有以下(ruby)代码:

(其中 response[2][0] 是生成的 html 代码)

在我的 nginx 服务器配置中,我有以下内容:

这有点工作,但不完全:传递给我的浏览器的内容现在开始于:

我的问题是:html 代码前面的多余部分是什么,如何防止它显示在浏览器结果中?

0 投票
0 回答
496 浏览

ruby-on-rails-3 - Rails 缓存消息

我正在使用 Rails.cache.read/write/fetch 方法。当我执行这些操作时,我会在我的日志中看到以下消息(见下文)。我想知道它们的意思,我理解读/写消息,但是 Fetch Hit and Generate 怎么样。

用例(缓存为空) - 所以当我使用时,Rails.cache.fetch("city/#{key}") { return city_object }我看到 3 条日志消息 - 读取、生成和写入。但是,如果我使用读取(检查密钥是否存在)/(否则)写入,我只会看到读取和写入消息,所以想知道什么更有效。

CACHE Read city/key1

CACHE Write city/key1

CACHE Generate city/key1

CACHE Fetch Hit city/key1

此外fetch,带有块的 a 会同时生成“Read...”和“Fetch Hit...”消息,而仅 a 会read生成“Read...”消息。在这两种情况下,缓存都有键/值对。

这是一个 Rails 3.2.8 应用程序,我使用 dalli gem 作为 memcached 客户端。