问题标签 [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.
http - 如何跨多个服务器完成缓存失效?
这是一个与平台无关的问题。我知道某些平台允许共享缓存等,但其中大部分只是“魔术”。我想知道它们是如何实际实施的,技术细节是什么。
因此,如果我有一个跨 10 台服务器运行的 Web 应用程序和一个简单的负载均衡器(不能进行粘性会话等等),我如何才能可靠地使整个服务器场的缓存失效?
我不是专门谈论共享缓存或类似的东西。例如,您有一个人登录您的网站。处理请求的服务器缓存他的信息用户/密码哈希等,以防止返回数据库。然而,随后他决定更改他的用户名或密码。您需要从可能拥有它的每个服务器中使此缓存值无效。
通常如何处理这样的场景?(假装不缓存它太贵了:))
azure - 在 Azure 中为 ASP.net 设置 SqlServer 缓存失效
我注册了一个 Azure 帐户并部署了一个网站和一个数据库,一切都很顺利。
一开始我在免费服务上使用它,但在遇到性能问题后,将其升级为共享模型(具有相同的性能)。“链接资源”数据库是一个网络版数据库。在门户中,它看起来像这样:
以下代码用于在我的网站的管理部分启用缓存失效:
它适用于我的本地 SqlServer Express,以及我的一个托管服务提供商的实时数据库。仅在 Azure 上,我得到以下异常:
因此,似乎缺少存储过程和“用户”(?)。我希望网络版默认具有这些功能?
如果它可用,我会选择 Express 版,但是我只能从 Azure 控制面板中选择“Web 版”和“商业版”。
有什么办法让这个工作?
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 函数提供什么参数?
java - 如何将缓存无效消息广播到运行 Web 应用程序的所有服务器?
我有一个托管在 AWS 上的基于 Java 的 Web 应用程序。它主要是读取的,因此缓存从数据库中检索到的对象以提高性能非常有意义。
当我更新一个对象时,我希望能够向所有保存该对象的服务器广播,并且它应该从所有本地缓存中失效。
不需要是实时的。陈旧的对象很烦人,需要在大约 20 秒内刷新。用户会注意到他们是否停留了几分钟。缓存失效不必在对象被保存的毫秒内发生。
我想到了什么
- 我研究了广播技术,就像 jGroups 一样,但 AWS 不支持 jGroups。
- 我不认为亚马逊的 SQS 消息服务可以做成广播服务。
- 我正在考虑为此目的使用数据库:我会将事件写入数据库表,并让每个服务器每隔几秒钟轮询一次该表以获取新的列表项。
django - 事务提交时的Django缓存失效?
在 Django 中以 READ-COMITTED 级别开发项目时,我认为 cache.delete 会导致竞争条件,而 django 的信号不会有太大帮助。
如何确保缓存失效仅在事务提交时完成?
php - 什么时候应该发生缓存失效?
有一个数据库记录。该记录有一个网页。此网页已缓存。在某些时候,记录可能会更新并且(网页的)缓存 - 不再需要。
系统应该立即告诉缓存不再需要它,还是应该在(且仅当)请求缓存的网页时发生这种情况,以防止潜在的不必要的删除?
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”键对应的结果中。
我该如何处理这样的问题?
permissions - 如何在 Shiro 中清除主题的缓存
Shiro 提供缓存功能,但在我的情况下,我为用户使用动态角色和权限。如果有的话,我需要使特定用户的缓存过期,以便权限的更改立即影响用户。
领域中有一个方法,但是我如何获取关联领域的实例来调用方法来清除缓存。
caching - Varnish 是否支持依赖图缓存失效?
考虑(假设的)情况,其中 apage
被缓存,其中包含blogsposts
which 又包含comments
。现在 1comment
改变。这意味着blogpost
必须使 的缓存失效,并且(传递地)必须使 的缓存page
失效。
换句话说:项目以一种可以被描述为依赖图(这是一个有向无环图)的方式相互关联
Varnish 是否支持这种类型的缓存失效?如果没有,是否有任何其他实现、研究等部分涵盖了这一点?
python - Django Cache-Machine 缓存失效在管理员中不起作用
我为我的 Django 1.6 项目安装了缓存机器,如下所述:http: //cache-machine.readthedocs.org/en/latest/
现在在 django 的管理员中,我再也看不到新条目了。缓存失效不起作用。我可以看到该条目正在数据库中生成,但它没有显示在管理员的列表视图中。我究竟做错了什么?
提前谢谢!