问题标签 [memcachier]

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 投票
1 回答
66 浏览

ruby-on-rails - 您的免费缓存最近一直处于非活动状态 - 内存缓存错误

我的许多应用程序突然出现此错误。

尊敬的 MemCachier 用户,

关于 ID 为 my-id 的缓存:您的缓存在过去 20 天内一直处于非活动状态。它将在 10 天内停用。

请注意,停用的缓存始终可以在您的分析仪表板上重新激活。有关更多信息,请参阅 https://www.memcachier.com/documentation#disabled-caches

干杯, MemCachier 团队

到目前为止,我收到了这封电子邮件,原因是我在 heroku 上托管的太多应用程序。其中一个共同点是,所有这些应用程序都在使用MemCachier for Rails4 app的免费版本。这些应用程序中很少有不经常使用的,但大多数都非常频繁地使用。我没有在任何地方列出此问题,我想阻止此服务被停用。

任何帮助将不胜感激。

提前致谢!

0 投票
1 回答
186 浏览

django - Memcache 在 localhost 上工作(settings.py 中没有任何内容)

我的问题是“任何人都可以证实或解释吗?” 以下缓存逻辑在 localhost 上按预期工作,但在 heroku 上失败(每次查询):

0 投票
1 回答
128 浏览

php - Heroku 和 Memcachier (Memcached) 注销用户 (PHP)

我在 Heroku 上运行 PHP 应用程序并使用 Memcachier 插件处理会话。

工作原理: - Memcachier 通过新部署成功保持用户登录到 Heroku。

什么不起作用 - 用户在 Web 应用程序中的整个过程中都会被随机注销。

如何让用户会话保持登录状态(直到用户注销 - 或我们实施的其他一些自动登录策略)?

0 投票
1 回答
265 浏览

ruby-on-rails - 尽管 expires_in 24.hours,Rails 缓存值丢失/为零

我正在使用带有 Puma 的 ruby​​ 2.3.3 和 Rails 4.2.8(1 个工人,5 个线程),在我的管理(即非关键)页面上,我想从我的数据库中显示一些统计信息(整数值)。有些请求需要很长时间才能执行,所以我决定缓存这些值并使用 rake 任务每天重写它们。

Admin#index 控制器

管理员#index 视图

耙任务

我在生产中使用它并使用 Memcachier(在 Heroku 上)作为缓存存储。我还将它用于网站上的页面缓存,并且在那里工作正常。我有:

生产.rb

我遇到的问题是缓存的值几乎立即从缓存中消失,而且是断断续续的。在我尝试过的控制台中:

  1. 我 Rails.cache.write 一个值(例如 product_a)并在一分钟后检查它,它仍然存在。虽然很粗糙,但我可以在 Memcachier 管理工具中看到“设置 cmds”的增量为 1。
  2. 但是,当我添加下一个值(例如 product_b)时,第一个值会消失(变为 nil)!有时,如果我添加所有 4 个值,2 似乎坚持。这些值并不总是相同的。就像打地鼠一样!
  3. 如果我运行 rake 来写入值,然后尝试读取这些值,通常只剩下两个值,而其他值则丢失。

我看到了一个与此相关的类似问题,其中解释的原因是使用了多线程服务器。缓存的值保存在一个线程中,无法在另一个线程中访问,解决方案是使用 memcache,我这样做了。

它不仅是控制台。如果我只是重新加载 admin#index 视图来存储值或运行 rake 任务,我会遇到同样的问题。价值观不会坚持。

我怀疑我要么没有正确使用 Rails.cache-commands,要么这些命令实际上没有使用 Memcachier。我无法确定我的值是否实际上存储在 Memcachier 中,但是当我在控制台中使用我的第一个命令时,我确实得到了以下信息:

但我没有得到后续写入的信息(我认为这是控制台中的可读性问题,而不是没有使用 Memcachier 的证明。

我在这里想念什么?为什么这些值不会保留在我的缓存中?