问题标签 [cache-expiration]

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 回答
932 浏览

java - AppEngine Memcache 过期策略

我期待以下 AppEngine 代码:

产生以下输出:

即,通过在将条目放入缓存时将过期日期设置为 1970 年,我希望它会立即被删除并可供重用。

相反,我得到:

即条目仍然存在。

现在,奇怪的是,如果我将代码更改为Expiration.onDate(new Date())(不带1),即在执行 put 操作之前将到期时间设置为正确,我得到预期的“null,true”。

Memcache 是否以某种方式将过去太远的到期日期解释为相对于现在而不是绝对日期???但即使这样也不符合结果,因为从 put 开始的 1ms 应该在 get 到来时仍然过期?!?

我可以将 Expiration 设置为什么值,以保证 put 条目立即到期(并删除!)?请记住,仅使用当前时间戳可能无法可靠地工作,因为 AppEngine 不提供跨服务器的任何时钟同步保证!

我知道乍一看想要这样做听起来很荒谬(为什么不直接删除它?),但我想在这里使用它:AppEngine Memcache atomic get-and-delete(“结论”上方的句子)。

0 投票
1 回答
186 浏览

ruby-on-rails-3 - 片段缓存在 Rails 3 中不起作用

我正在使用 rails 3 和片段缓存。这是我的控制器代码(显示方法):

这是我的视图文件代码(show.html.slim):

但是当我添加新记录时,该记录不会显示在页面上。我不知道我错过了什么。

这段代码有什么问题吗?

0 投票
1 回答
1144 浏览

java - ExpireAfterWrite 似乎不起作用

我正在尝试使用谷歌的番石榴缓存,我只是用 expireAfterWrite 测试它,间隔为 1 分钟。在我正在处理的应用程序中,有数百个用户。所以我的理解是,当第一个人访问缓存时,我们从数据库中填充它,然后一分钟计时器应该开始倒计时。现在缓存已满。我们总是会在那一分钟内从缓存中获取它。一分钟后,它将过期,我们再次从数据库中获取它。

但是,似乎每次我在一分钟内访问缓存时,计时器都会重置。这是为什么?如果我在一分钟内没有访问缓存,缓存就会过期并且工作正常。

代码:

编辑

我从控制器调用缓存:

它将有用的数据传递给将其传递给调用数据库的方法的方法。但是,我现在正在尝试重构我的代码以使用 LoadingCache 但这需要我重写 load() 方法,该方法只使用一个参数,这是关键。我需要的不仅仅是键,我需要调用控制器中的 cacheManager,所以它调用了适当的方法。什么是加载方法?什么时候使用?何时调用以及多久调用一次?它会使我的其他方法无效吗?

0 投票
1 回答
555 浏览

java - 自首次写入后过期的 Java 缓存

我有应该累积到持久键值存储中的事件。密钥首次插入后 24 小时后,应处理此累积记录并将其从存储中删除。过期数据处理分布在多个节点之间,因此数据库的使用涉及到处理同步问题。我不想使用任何 SQL 数据库。根据我的需要,最适合我的可能是一些具有可配置过期策略的缓存。有没有?或者可以用一些 No-SQL 数据库来解决这个问题吗?

0 投票
1 回答
118 浏览

asp.net - 缓存数据集传递值或引用?

我要缓存一个对象。来自http://msdn.microsoft.com/en-us/library/ms227644(v=vs.80).aspx的阅读政策前明显且流行的检查

确保数据集对象的存在。由于 dataSet 只是对对象的引用,因此缓存中的实际 dataSet 可以在几毫秒内消失,例如在 foreach 循环的中间。如果是这样,这个:

应该更安全。尽管缓存仍然可以在 .Copy() 期间过期。我是对的还是只是想多了?

0 投票
1 回答
11831 浏览

spring-mvc - 将缓存 Redis 过期设置为 1 年

如何将 Redis Cache 的过期时间设置为 1 年?

我尝试将longxml 配置上的值设置为:31556952000(1 年),但随后它捕获了一个异常,即 Integer 类型无法将该值识别为 Integer。我试图在谷歌搜索,它说整数最大值是高达2147483647,这意味着,如果我设置为那个最大值,我只会让我的缓存在 24 天后过期。

这是我的applicationContext.xml(我省略了不必要的代码):

上面的代码配置为将过期时间设置ruleCache为仅 1 天(86400 毫秒)。

有可能这样做吗?谢谢。

0 投票
1 回答
514 浏览

ruby-on-rails - Ruby - 如何在 Rails 中过期后刷新片段缓存

我有一个 Ruby on Rails 应用程序,其中使用了片段缓存并使用 memcached 来存储数据。我还有一个清扫器,它在对模型进行更改时使缓存过期。

我有一个要求,在用户点击相册页面之前,过期的片段需要用新数据刷新。有人可以帮助如何实现片段缓存数据刷新吗?

0 投票
0 回答
219 浏览

ruby-on-rails - RUBY ON RAILS 生产环境,无法清除缓存

有没有办法在生产环境中清除缓存

使用默认的 rails 缓存

我尝试使用caches_action :index, :expires_in => 1.minute
,但它只适用于开发环境而不是生产环境

0 投票
1 回答
131 浏览

ruby-on-rails - 分页页面的 expire_action

  • 红宝石 2.2.2p95
  • 导轨 4.2.1

我的缓存生成运行良好。

索引页

分页页面

但是我很难让它们过期。我正在使用清扫器使我的动作缓存过期,但我还没有弄清楚如何使分页页面过期。

如何使分页页面过期

等等?

0 投票
1 回答
276 浏览

.htaccess - CloudFlare 的“清除”功能如何工作?

我已经调整了我网站上许多文件的过期标签(使用 .htaccess)。如您所知,这可能会产生一个小问题,即用户浏览器在文件的缓存版本过期之前不会显示网站的最新版本。

我开始寻找避免这种情况的方法,然后我记得前段时间使用过 CloudFlare。CloudFlare 可以调整这些相同的标签,但它也具有清除功能。“清除”在做什么?