问题标签 [shared-cache]
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.
.net - 同步访问存储在分布式缓存 (SharedCache) 中的密钥
在我的项目中,我使用SharedCache作为分布式缓存机制。在 webfarm 中部署了多个服务实例,这些实例可以访问这些缓存数据。缓存的数据是瞬态的,可以有更新。我想知道是否有任何方法可以在两个或多个服务之间同步对数据的访问?
举个例子,这里是一个场景,假设有 2 个服务实例正在运行。两个实例都在访问共享缓存。如果一项服务从缓存中提取一些数据进行处理,我希望另一项服务不要选择相同的信息。为此,我需要用一些状态更新缓存,说不可用。但是,当我更新状态时,可能会发生第二个服务也可能会选择相同的数据。
共享缓存文档线程安全表明数据是全局可用的并且不是线程安全的。有没有办法在不更改 SharedCache 的源代码的情况下使其线程安全?
asp.net-mvc - 使用 SharedCache 和 Nhibernate 设置缓存实体的过期时间
我有一个 MVC webapp,我现在正在整合。第二个应用程序将数据发布到我的 webapp 从中读取的数据库。
我正在使用 SharedCache 作为我的 NHibernate 的缓存提供程序,并且我希望为我的实体分配“过期时间”(这样我可以保证数据的新鲜度) - 并且知道某些实体很少更新而其他实体会定期更新,它会具有不同过期时间的不同缓存区域是理想的。
我在网上看到了很多关于如何使用 SysCache 执行此操作的示例,但找不到 SharedCache 的任何示例。
提前致谢。
html - Shared HTML5 offline cache within a local network?
Ok, so I know that HTML in itself isn't done yet, and I've done my fair share of reading for HTML5's offline modes.
Here's the question:
Can I set up an offline app in such a way that the entire system works offline, and SHARES a cache (or an XML repository, or a SQL-Lite DB or something) with other clients in the SAME network?
For example, my system runs on clients that need to share information with each other within a local network, but its fully web based. In case the local network's router dies, how can these clients continue to communicate with one another?
=== END ===
NOTE: If you're still not clear, I'd recommend you read on. The information below is to further clarify what I want.
In case you're still reading, here's a detailed example:
4 people in a restaurant are using a web based ordering system. They each have an iPod Touch (lol) which is connected to the internet via Wifi. Each member logs in to the system under a shared account, which allows them to share information. The cook is also connected, but uses a mounted iPad (lolz) in the kitchen.
When a waiter records an order, the data is stored in a DB, and AJAX is used to constantly refresh the Cook's screen, so he is notified instantly.
Assume, Zeus struck down the electricity in the restaurant.
Now, there's no internet connection, but all devices in question still function thanks to their inherent battery-oriented nature.
The web app switches to offline mode, and utilizes cached menus and screens.
BUT!
How does the offline system share information between client devices? How does the iPod Touch #3 tell the Cook's iPad - "Hey there, this is order #5352"?
The most obvious thought is a shared cache or something...
Ideas?
silverlight - 请帮助将 NLog v1.1 转换为 NLog v2.0
我想在我们的 Silverlight v4.0 项目中使用 Sharedcache (sharedcache.codeplex.com)。但是,我们使用 NLog v2.0 进行客户端日志记录。SharedCache 当前版本仅支持 NLog v1.1,它将与我们的 Web 服务器上的 NLog v2.0 发生冲突。
所以我决定将 Sharedcache windows 服务转换为使用 NLog v2.0。编译成功。但是一旦我启动服务,我就收到了这个错误。熟悉NLog的人可以帮忙吗?我认为这是在抱怨布局。
这是windows服务配置文件:
当我在 Visual Studio 中启动服务时,出现以下 NLog 异常:
asp.net - 主站点之间的 asp.net 缓存共享添加其应用程序/虚拟目录(使用 iis 7.5)
我的解决方案包含 4 个项目:核心、数据(库)、管理员、客户端(MVC 3 站点)。
管理员和客户使用数据项目的存储库与数据库通信。
我想使用 HttpContext.Current.Cache 为管理员和客户端缓存数据项目中的数据,并在可以出现在管理员和客户端中的更新后使缓存的数据无效。
我应该如何配置站点、应用程序或虚拟目录和应用程序池以在客户端和管理中具有相同的缓存?
c# - DataCache.Increment 是否可用于 WindowsAzure 共享缓存?
我正在尝试使用 WindowsAzure 共享缓存和此处记录的 DataCache 类的增量运算符:http: //msdn.microsoft.com/en-us/library/windowsazure/jj160018.aspx。
我正在使用的 Microsoft.ApplicationServer.Caching.Client.dll 来自用于缓存http://nuget.org/packages/WindowsAzure.Caching的 1.7 nuget 包,但我在该程序集中找不到增量方法。
Azure 中是否提供 Increment 方法,如果它是我应该引用什么 dll 来访问它?
multithreading - SQLite SharedCache 多线程读取
我正在分配有 4 个处理器的 Ubuntu 虚拟机上开发一个多线程 sqlite 数据库应用程序。我正在使用 sqlite 版本 3.7.13。我创建了一个测试来验证多个线程/连接可以同时从数据库中读取。
我有两个可执行文件。第一个可执行文件只是创建一个数据库,在该数据库中创建一个表,将 50 个项目插入该表,然后关闭该数据库。这根本不涉及任何多线程,只是为了提供一个包含条目的数据库。
第二个可执行文件创建多个线程以从数据库中读取并等待它们完成并记录所有线程完成所花费的时间。每个线程执行以下操作: - 使用 sqlite_open_v2() 创建一个数据库连接,以便每个线程都有自己的到从第一个可执行文件创建的数据库的单独连接 - 在一个数据库表上执行 100000 SELECTS(每个选择查询table) - 关闭数据库连接
当我在每个线程中将 SQLITE_OPEN_READWRITE 指定为 sqlite_open_v2 的标志运行此测试时,我得到以下执行所有查询的总时间结果:
1 线程 - 0.65 秒 2 线程 - 0.70 秒 3 线程 - 0.76 秒 4 线程 - 0.91 秒 5 线程 - 1.10 秒 6 线程 - 1.28 秒 7 线程 - 1.57 秒 8 线程 - 1.78 秒
这些结果与我预期的一样,因为当我添加线程时,时间稍微增加了一点(可能是由于线程之间的上下文切换和其他原因),这意味着读取基本上是并行完成的。
但是,当我使用 SQLITE_OPEN_READWRITE | 运行相同的测试时 标志的 SQLITE_OPEN_SHAREDCACHE,我得到以下结果:
1 线程 - 0.67 秒 2 线程 - 2.43 秒 3 线程 - 4.81 秒 4 线程 - 6.60 秒 5 线程 - 8.03 秒 6 线程 - 9.41 秒 7 线程 - 11.17 秒 8 线程 - 12.79 秒
从这些结果看来,共享缓存模式中的某些东西正在阻止数据库中同时发生多个读取。我已经验证了线程并行运行确实不同(线程 4 读取、线程 8 读取、线程 2 读取等,而不是线程 1 执行所有读取,线程 2 执行所有读取,线程 3 执行所有读取, ETC。)。但是,似乎每个单独事务的读取都是以串行方式完成的,或者其他事情正在减慢共享缓存中的数据库。
为什么当我在共享缓存模式下添加线程而不是没有它时,我会看到如此高的时间增加?有没有办法解决这个问题并仍然使用共享缓存模式?
谢谢你的帮助。非常感谢。
background - 在运行时切换 cocos2d 视网膜显示背景。
我的应用中有背景,但单击按钮应该会更改它并使用不同的背景。
我无法将它们全部添加到 sharedTextureCache 中,因为每个缓存的大小都大于 16MB,而且我有 30 个不同的背景。
在没有加载时间的情况下切换背景的最佳方法是什么?我不希望用户在单击该按钮时等待。
谢谢
jpa - java.util.Date 字段的意外 EclipseLink 共享缓存行为
我在 EclipseLink(2.3.0) 上踢轮胎,发现一些似乎严重错误的东西。我的问题是,当从共享缓存命中返回一个实体时,java.util.Date
(可能还有其他)没有像我期望的那样被复制。这会产生一些非常讨厌的后果,因为日期字段不是不可变的,因此不能共享....但是也许我又错过了什么?我会注意到我没有设置任何属性,但我-javaagent
在 JSE 环境中使用编织器。
测试片段:
c# - 如何配置本地缓存进行测试
我正在使用 Azure 共享缓存。在开发过程中,我需要编写大量数据,这需要时间。
是否可以将工作角色配置为写入本地缓存?