问题标签 [caching]

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 投票
3 回答
2486 浏览

asp.net - 缓存用户控件时可以使用多个 VaryByCustom 参数吗?

我一直在尝试几种不同的方法,但由于某种原因它不起作用。甚至可能吗?

0 投票
5 回答
915 浏览

c++ - Windows 上最快的小型数据存储

我的应用程序跟踪大约 1000 个对象的状态。这些对象以无特定顺序读取和写入持久存储(序列化)。

现在,该应用程序使用注册表来存储每个对象的状态。这很好,因为:

  • 很简单

  • 它非常快

  • 可以读取/写入单个对象的状态,而无需读取更大的实体(例如从大型 XML 文件中提取片段)

  • 有一个不错的编辑器(RegEdit),可以轻松操作单个项目

话虽如此,我想知道是否有更好的方法。SQLite 似乎是一种可能性,但您没有与注册表相同级别的多读取器/多写入器,也没有简单的方法来编辑现有条目。

有更好的建议吗?一堆平面文件?

0 投票
4 回答
9586 浏览

asp.net - ASP.NET 中的应用程序和缓存有什么区别?

Application("some-object")Cache("some-object")ASP.NET有什么区别?

0 投票
9 回答
11774 浏览

php - 使用 PHP 和 MySQL 缓存调整大小图像的最佳方法

使用 PHP 处理图像缓存的最佳实践方法是什么。

文件名当前存储在 MySQL 数据库中,该数据库在上传时重命名为 GUID,以及原始文件名和 alt 标签。

当图像被放入 HTML 页面时,它是使用 '/images/get/200x200/{guid}.jpg 之类的 url 完成的,它被重写为 php 脚本。这允许我的设计人员指定(大致 - 源图像可能更小)文件大小。

然后,php 脚本会创建一个大小为 200x200 的哈希值和 GUID 文件名,如果该文件之前已生成(TMP 目录中存在具有该哈希值的文件),则从应用程序 TMP 目录发送该文件。如果散列文件名不存在,那么它会被创建,写入磁盘并以相同的方式提供,

这是否有效?(它还支持对图像进行水印处理,并且水印设置也存储在哈希中,但这超出了此范围。)

0 投票
5 回答
1885 浏览

c# - 如何从缓存中清除过期项目?

我已经构建了一个不错的小类,用作缓存。每个项目都有一个过期时间跨度或日期时间。每次尝试访问缓存中的项目时,都会检查该项目的过期时间,如果过期,则将该项目从缓存中删除并且不返回任何内容。

这对于经常访问的对象来说非常有用,但是如果一个项目被放入缓存中并且再也不会被访问,那么即使它已经过期,它也永远不会被删除。

从缓存中使此类项目过期的好方法是什么?

我是否应该有一个后台线程无限枚举缓存中的每个项目以检查它是否已过期?

0 投票
7 回答
8714 浏览

python - 在 urllib2 中缓存?

使用我忽略的 urllib2 时,是否有一种简单的方法来缓存内容,或者我必须自己滚动?

0 投票
4 回答
1831 浏览

asp.net - 您实际上可以持有多少应用程序会话数据?

我目前有一个应用程序,每天有超过 20,000 名用户使用,他们主要查看一个数据表。该数据表填充了大约 20 行,但从数据库中的“数据表”中提取,表中有 200,000-600,000 条信息记录。编辑:这 20 行是“动态的”,如果用户通过文本框输入任何信息,它们会发生变化。

我目前还持有用户数据和个人资料数据。

我目前每次显示数据表时都会进行大约 4 次回调,但我无法将其减少到 1 次。

问:我想知道我是否真的可以每 5 秒用 200,000-600,000 行数据填充应用程序状态,它真的会加速系统吗?编辑:对用户或任何其他用户输入的动态行执行,内容需要经常刷新。

问题 2:我实际上可以在应用程序缓存中保存多少并且仍然可以更快地获得它?

编辑:有超过 20,000 名用户访问这 200,000 行,我需要缓存所有这些行,或者至少我认为是最佳实践。当用户访问我的网站时,这是他们查看的主要页面之一,每次访问可能会返回 2-5 次。

编辑:用户确实看到了一组独特的 20 行,这可能与用户看到的任何其他 20 行不同。这是一个非常动态的网站,几行不同的行可以大约每秒更新一次。

编辑:如果存储在会话状态中,那么它只会加快一个人查看页面的次数。不是整个应用程序,因为一个人只能查看一次页面然后离开。

0 投票
5 回答
9752 浏览

c# - ASP.net中使用静态变量缓存信息可以吗?

目前,我正在 ASP.net 上使用 C# 3.5 开发项目管理应用程序。为了减少对数据库的访问,我使用静态变量缓存了大量信息。例如,用户列表保存在内存中的静态类中。该类在启动时从数据库中读取所有信息,并在进行更改时更新数据库,但它永远不需要从数据库中读取。

该类在写入数据库的同时使用更新的信息 ping 其他网络服务器(如果它们存在)。ping 机制是一种 Windows 服务,缓存对象使用随机可用端口注册到该服务。它也用于其他事情。

数据量并不是那么大。目前我使用它只是为了缓存用户(密码哈希、权限、姓名、电子邮件等)。它只是保存了一堆对数据库的调用。

我想知道这种方法是否存在任何缺陷和/或是否有更好的方法来缓存数据?

0 投票
1 回答
851 浏览

c# - 缓存会话工厂

据我收集(阅读:测量),到目前为止,构建配置和 sessionfactory 在使用 nhibernate 执行查询时花费的时间最多。有什么反对使 sessionfactory 静态的,所以每个 appDomain 只会配置一次?

我知道在使用这种方法时会出现锁定和竞速问题,但就我个人而言,在 sessionfactory 上使用这种方法时,我看不出这会破坏我的应用程序。

我问这个的原因是因为它真的很难测试可能的线程问题,因为它不会一直发生。

0 投票
2 回答
8369 浏览

c# - 在类库中正确实现缓存以在 asp.net 应用程序中使用

我正在我在 asp.net 应用程序中使用的类库中实现缓存。

我使用静态方法将缓存对象创建为单例模式来更新缓存,该方法实际上只是用我需要缓存的数据集合加载成员变量/属性(当然有一些锁定逻辑)。我认为这是一个不错的方法,因为我可以通过调用来访问我的数据

我正在创建一个新的缓存对象来存储由某个键分区的大量数据。我要说的是我正在创建一个新的缓存,但是这个缓存不会一次加载所有数据,而是为每个访问的键存储一个集合。

这次提出了关于垃圾收集的问题。由于我正在存储大量数据,如果它突然被 gc'ed 会不会是一种浪费?由于它只是一个单例模式,因此无法确保数据保留在缓存中。

所以我的问题是 - 实现缓存来处理这种情况的最佳做法是什么?我真的不喜欢一个非常复杂的解决方案,而且我知道 System.Web 中有缓存,但这似乎有点“离题”,因为这只是一个类库,或者你怎么看?