问题标签 [cache-invalidation]

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

http - 如何跨多个服务器完成缓存失效?

这是一个与平台无关的问题。我知道某些平台允许共享缓存等,但其中大部分只是“魔术”。我想知道它们是如何实际实施的,技术细节是什么。

因此,如果我有一个跨 10 台服务器运行的 Web 应用程序和一个简单的负载均衡器(不能进行粘性会话等等),我如何才能可靠地使整个服务器场的缓存失效?

我不是专门谈论共享缓存或类似的东西。例如,您有一个人登录您的网站。处理请求的服务器缓存他的信息用户/密码哈希等,以防止返回数据库。然而,随后他决定更改他的用户名或密码。您需要从可能拥有它的每个服务器中使此缓存值无效。

通常如何处理这样的场景?(假装不缓存它太贵了:))

0 投票
1 回答
422 浏览

azure - 在 Azure 中为 ASP.net 设置 SqlServer 缓存失效

我注册了一个 Azure 帐户并部署了一个网站和一个数据库,一切都很顺利。

一开始我在免费服务上使用它,但在遇到性能问题后,将其升级为共享模型(具有相同的性能)。“链接资源”数据库是一个网络版数据库。在门户中,它看起来像这样:

在此处输入图像描述

以下代码用于在我的网站的管理部分启用缓存失效:

它适用于我的本地 SqlServer Express,以及我的一个托管服务提供商的实时数据库。仅在 Azure 上,我得到以下异常:

因此,似乎缺少存储过程和“用户”(?)。我希望网络版默认具有这些功能?

如果它可用,我会选择 Express 版,但是我只能从 Azure 控制面板中选择“Web 版”和“商业版”。

有什么办法让这个工作?

0 投票
0 回答
266 浏览

vcl - varnish 中的内联 C 函数的参数是什么

我在 varnish book 中发现 varnish 3 purge 功能可以通过 varnish 2.1 以某种方式实现

C{ VRT_Nuke(...); }C

VTR_Nuke 的签名似乎是

int VRT_nuke(struct sess *sp, const char *str, ...)

在我的 default.vcl 中,我想写如下内容:

我应该给 VRT_Nuke 函数提供什么参数?

0 投票
1 回答
1279 浏览

java - 如何将缓存无效消息广播到运行 Web 应用程序的所有服务器?

我有一个托管在 AWS 上的基于 Java 的 Web 应用程序。它主要是读取的,因此缓存从数据库中检索到的对象以提高性能非常有意义。

当我更新一个对象时,我希望能够向所有保存该对象的服务器广播,并且它应该从所有本地缓存​​中失效。

不需要是实时的。陈旧的对象很烦人,需要在大约 20 秒内刷新。用户会注意到他们是否停留了几分钟。缓存失效不必在对象被保存的毫秒内发生。


我想到了什么

  • 我研究了广播技术,就像 jGroups 一样,但 AWS 不支持 jGroups。
  • 我不认为亚马逊的 SQS 消息服务可以做成广播服务。
  • 我正在考虑为此目的使用数据库:我会将事件写入数据库表,并让每个服务器每隔几秒钟轮询一次该表以获取新的列表项。
0 投票
1 回答
653 浏览

django - 事务提交时的Django缓存失效?

在 Django 中以 READ-COMITTED 级别开发项目时,我认为 cache.delete 会导致竞争条件,而 django 的信号不会有太大帮助。

如何确保缓存失效仅在事务提交时完成?

0 投票
1 回答
182 浏览

php - 什么时候应该发生缓存失效?

有一个数据库记录。该记录有一个网页。此网页已缓存。在某些时候,记录可能会更新并且(网页的)缓存 - 不再需要。

系统应该立即告诉缓存不再需要它,还是应该在(且仅当)请求缓存的网页时发生这种情况,以防止潜在的不必要的删除?

0 投票
2 回答
814 浏览

php - PHP 中的基本 Memcached 实现

我了解 Memcache 的概念,但我有疑问。

让我们说:

我有一个包含三列的“用户”表:用户 ID 用户名和密码。

假设查询是 $query="select * from users"。第一次,查询被执行并以 md5($query)->result 的形式存储在内存缓存中。

因此,当下次执行此查询时,将执行 $query 的 md5 哈希。它匹配并从内存缓存中获取结果。

但是,如果我必须从上述查询中选择 2 个参数怎么办。

像 $query = 从用户中选择用户名、密码。

那我该怎么办?理想情况下,我希望从与 select * from users 相同的键中获取它,因为“select username,password from users”所需的所有数据都存在于与“select * from users”键对应的结果中。

我该如何处理这样的问题?

0 投票
2 回答
3216 浏览

permissions - 如何在 Shiro 中清除主题的缓存

Shiro 提供缓存功能,但在我的情况下,我为用户使用动态角色和权限。如果有的话,我需要使特定用户的缓存过期,以便权限的更改立即影响用户。

领域中有一个方法,但是我如何获取关联领域的实例来调用方法来清除缓存。

0 投票
1 回答
255 浏览

caching - Varnish 是否支持依赖图缓存失效?

考虑(假设的)情况,其中 apage被缓存,其中包含blogspostswhich 又包含comments。现在 1comment改变。这意味着blogpost必须使 的缓存失效,并且(传递地)必须使 的缓存page失效。

换句话说:项目以一种可以被描述为依赖图(这是一个有向无环图)的方式相互关联

Varnish 是否支持这种类型的缓存失效?如果没有,是否有任何其他实现、研究等部分涵盖了这一点?

0 投票
1 回答
374 浏览

python - Django Cache-Machine 缓存失效在管理员中不起作用

我为我的 Django 1.6 项目安装了缓存机器,如下所述:http: //cache-machine.readthedocs.org/en/latest/

现在在 django 的管理员中,我再也看不到新条目了。缓存失效不起作用。我可以看到该条目正在数据库中生成,但它没有显示在管理员的列表视图中。我究竟做错了什么?

提前谢谢!