问题标签 [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 投票
1 回答
789 浏览

ruby-on-rails - memcached (Dalli) 和 caches_action 的过期时间

我正在为我的 rails 应用程序使用 Memcached 和 Dalli 商店。

有没有办法设置类似expires_ingzipfor 的东西caches_action

0 投票
1 回答
1238 浏览

ruby-on-rails - 怎么叫沉默!在 dalli cache_store 上?

我正在尝试在开发模式下开发带有缓存的应用程序,但是 development.log 垃圾邮件主要是缓存日志。我正在使用 dalli,我知道,dalli 有沉默!方法(https://github.com/mperham/dalli/commit/892020fbc73613ccc84412ce04b85b7fda645e63),但是如何使用这种方法呢?

我找到了一些旧指令,建议在其中调用 on config.cache_store,但它是一个符号,并且没有此方法:

抛出异常。

0 投票
1 回答
1571 浏览

ruby-on-rails - uninitialized constant Dalli (NameError) in staging but not production

So I get a uninitialized constant Dalli (NameError) when I push my ruby on rails app to my staging on heroku, but it works fine in production. my production.rb and staging.rb files are the exact same except for a mailer host value. Could someone help? Thanks!

production.rb:

staging.rb:

production.rb:

Here is the output of heroku logs --tail --remote staging:

Feel free to check out my code at www.github.com/sambaek/novulty

0 投票
0 回答
986 浏览

ruby-on-rails-3.2 - 重定向到外部 URL 后,cookie_store 中的 Rails 3.2 会话 cookie 被删除

我们面临一个奇怪的问题,在我们的 rails 3.2 应用程序(暂存环境)的会话中,很少有键/cookie 被删除/丢失,该应用程序具有以下缓存设置/配置。session store是cookie store,配置如下:

rails cache store 是一个memcache store,我们使用dalli gem 来集成rails 和memcache。

以下配置已添加到不同的 .rb 文件中:

不过,这种丢失 cookie 的情况发生的流程有点复杂。发生这种情况的场景如下:

  1. 用户通过访问 Appsrv 上的页面启动会话(rails 3.2 应用程序,此时在会话中设置了一些标识用户事务的变量)
  2. 转到外部网站进行身份验证。
  3. 认证成功后,外部网站重定向到 Java App 服务器。
  4. Java App 服务器记录身份验证并重定向回 Appsrv。
  5. 但是在此重定向之后,步骤 1 中设置的会话变量消失了。

一些奇怪的发现:事情在开发环境中完美运行,唯一的区别是:

如果我们在暂存“config.action_controller.perform_caching=false”中有相同的设置,那么暂存也可以正常工作。即使“config.action_controller.perform_caching”设置为 false,缓存实际上在控制器和模型中正确发生。

所以问题是: 1. 当 config.action_controller.perform_caching 设置为 true 时,为什么会话 cookie 会被删除?2. config.action_controller.perform_caching 配置如果设置为 false 也允许缓存正常发生有什么意义?

0 投票
1 回答
239 浏览

ruby-on-rails-3 - 为什么我的 Rails 缓存日志中会显示对“机架”路由的调用?

我的 Rails 3.2 应用程序包含上游负载均衡器的健康检查路由:

我还使用 Dalli 和 memcached 在我的应用程序中缓存各种对象。我最近一直在使用 Dalli 调试输出,并注意到我的日志充满了健康检查:

这些健康检查是否出于某种原因从缓存中提供?这是在哪里配置的?我显然没有设置页面缓存。此路由是与该 URL 关联的唯一代码。

0 投票
1 回答
1305 浏览

ruby-on-rails - 在运行时更改 Rails cache_store?

我的应用程序具有允许管理员通过 GUI 更改 cache_store 配置的功能。然后新的配置将立即生效。

我的 production.rb 中的默认 cache_store:

管理员可以选择更改为将 memcached 与 Dalli 存储一起使用。我试图改变 Rails.application.config.cache_store:

但是 Rails.cache 没有改变:

有没有办法做到这一点?

0 投票
2 回答
488 浏览

ruby - 将 Twitter 时间线存储在缓存中(使用 Sinatra)?

我正在制作一个基本的 Sinatra 应用程序,以使用Twitter gem显示用户的 Twitter 提及时间线。登录后,我获取他/她的提及。就像是:

问题在于,每次用户点击主页时,我都会调用 Twitter API。我的速率受到限制,而且效率也不高,因为我只想重新获取提及时间线,比如每 3 分钟一次。或者,如果它更简单,我可以在达到速率限制后使用缓存。

阅读后,似乎最好的方法是将这些数据存储在缓存中,这样我就不会继续发出 API 请求。我该怎么做呢?

0 投票
0 回答
690 浏览

ruby-on-rails-3 - Rails + Unicorn 问题 - DalliError:无法解组值:未定义的类/模块

我有一个 Rails 3.1 应用程序,它利用 Shopify API gem 通过 ActiveResource 获取一些外部数据。我们通过 Dalli 将这些 ActiveRecord 模型对象存储在 Memcached 中,然后在需要时再次读取。

我们可以在运行 Thin webserver 时成功读取这些数据,并且一切正常。但是,一旦我将 Unicorn 设置为网络服务器,从 Memcached 读取模型对象时,我会继续收到以下错误:

这不会在每次阅读时都发生,但经常会成为一个大问题。只有当我们产生超过 1 个 Unicorn 工作进程时才会发生这种情况。

下面是我的 unicorn.rb 文件:

我们还激活了以下功能:

如果我只生成一个 Unicorn worker_process (worker_processes 1),那么一切正常。我试过设置 config.threadsafe!在 application.rb 中,这对多个工人没有帮助。

似乎不需要所需的类/模块,我不知道为什么。

编辑:我还在我的 applicaton.rb 文件中添加了以下内容,以尝试将 gem 添加到 rails 的自动加载路径,但没有成功:

我还像这样添加到 application_controller.rb require_dependency 'shopify_api' :

但我不确定这是否是执行 require_dependency 的正确方法,因为缺少的类是:ShopifyAPI::Order::ClientDetails

有任何想法吗?谢谢 :)

0 投票
2 回答
665 浏览

ruby - Dalli 是否只缓存字符串?(memcache 的新手)

如果是这种情况,那么最好将内容存储为 JSON 吗?

我查看了文档,但没有明确承认。

0 投票
1 回答
731 浏览

ruby-on-rails - Dalli 是否会过期所有盒子中的缓存?

根据https://github.com/mperham/dalli,我们可以配置多个 Memcache 服务器。但我不确定它是如何工作的。

假设我们正在使用具有两台服务器的 memcache 集群:memcache1(box1) 和 memcache2 (box2)。

  • 用户 A 和用户 B 共享同一个资源。
  • 用户A登录并读取box1中缓存的共享资源。
  • 用户 B 登录并读取 box2 中缓存的共享资源。
  • 用户 A 更新共享资源并使 box1 上的缓存过期
  • 用户 B 看不到更新的资源,但仍然在 box2 中获得缓存。

到目前为止,这是我的理解,我不确定缓存过期在集群环境中是如何工作的。特别是,当我们想急切地使缓存过期时,它会在所有盒子上过期吗?

鉴于我们在两个 rails 服务器中有类似的配置:

您如何看待这个用例?

感谢您的所有兴趣。