问题标签 [ncache]

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

c# - 是否可以将对象保存在内存中以获得比 Redis 或 Memcached 更快的缓存存储?

在存储复杂对象(例如 C# POCO 对象)时,内存中缓存存储需要序列化/反序列化。

难道不能只把要缓存的数据作为对象图保存在内存中,消除这个瓶颈吗?毕竟,缓存和序列化的数据仍在内存中,所以为什么不将原始对象保留在内存中以获得最快的缓存(也许使用命名管道来实现分布式缓存?)

谢谢

0 投票
2 回答
388 浏览

powershell - 我可以在不确认的情况下清除 NCache 缓存吗?

我有一个 NCache 实现(在一对服务器上以复制格式配置,如果这有什么不同的话),我想编写脚本清除缓存。我有一个 powershell 脚本,它使用适当的参数调用 NCache clearcache.exe 工具(在 \bin\tools 中),但该工具随后会提示我确认我确实这样做了清除非空缓存(为什么是, 我愿意!)。

我查看了命令的内联帮助(很少)和在线 NCache 文档(http://www.alachisoft.com/resources/docs/ncache/help/main.html),但没有任何运气来获得其他帮助参数(如--force选项等)。

有没有这样的选项可以让我在不与脚本交互的情况下清除缓存?是否有其他途径可以完成同样的事情?

0 投票
1 回答
264 浏览

ncache - NCache 是否有默认项目过期时间?

我正在审查 NCache,因为我们希望摆脱 AppFabric。目前,我只是在使用开源版本,它相当简单。但是,我不知道如何为添加到缓存的项目指定默认超时。

我知道我可以使用绝对或滑动到期明确说明项目何时到期,但我正在寻找一种在缓存配置中设置默认值的方法。我们可以使用 AppFabric 做到这一点,并且只在需要不同时显式设置过期时间。

在大多数情况下,我使用的是已安装的默认缓存配置,但我尝试添加一个<expiration>我看到的使用 web.config 的 ASP.NET 应用程序以及ncContentOptimization来自这个问题:Alachisoft Ncache configuration issues

下面是我从服务器的config.ncconf.

是否甚至可以配置默认过期时间,或者我应该查看

0 投票
1 回答
78 浏览

c# - NCache Open-Source 4.4SP1 是否支持项目级通知?

我正在尝试将 NCache 用作具有数据更改通知的共享键值存储。这是我尝试过的:

和回调:

我在回调中设置了一个断点,但我得到的唯一通知是带有key = "123", 和的通知cacheeventargs.CacheItemRemovedReason = Underused

这让我想知道 NCache Open-Source 4.4SP1 是否支持项目级通知。难道我做错了什么?

0 投票
1 回答
255 浏览

ncache - 如何以编程方式为 NCache 客户端配置加载特定文件?

不想离开client.ncconf我的exe,我希望能够以client.ncconf编程方式指定文件的路径。我怎么可能?我正在使用 NCache 4.4SP1 开源。

我使用的方法主要是Web.Caching.NCache.InitializeCacheCache.Get

0 投票
1 回答
145 浏览

c# - 具有现有数据库和具有多个源的类的实体框架与手动存储过程

Entity Framework 和 ORM 的新手,但是可能有一个独特的情况,我们正在考虑在某种程度上重构我们的应用程序的工作方式。

现在我们正在使用内存分布式缓存架构,基本上作为内存数据库,效率相当低且容易出错,因此与持久数据的同步,甚至缓存中的对象都不一致。

这个想法是有点回到核心,要么集成某种形式的 ORM,比如实体框架,要么在 SQL 中手动创建存储过程,以引入创建复杂类所需的数据。

举个例子,假设我们有一个类SomeDashboard,它将有许多基于Dashboard请求设置的属性(存储在 SQL 中),但随后有许多与 相关的对象列表Dashboard,例如ProductsorReviews等​​。可以写一个存储过程,它将利用单个数据库请求,该请求将拉回多个结果集以创建所有这些列表和对象值。

创建存储过程来做到这一点会更好,还是创建多个存储过程来获取数据(意味着更多的 SQL 调用),或者捎带实体框架来将所有对象拼凑在一起会更好吗?

一些不稳定的东西,导致需要经常重建;每次我们构建对象时,担心使用如此多的连接和如此多的请求来扩展数据库。

也许这足以给出某种形式的方向。我知道这充其量是模糊的。

与实体框架相关的问题的另一部分是——将所有内容映射到现有数据库和类有多难?

从高层次上看……感觉内存分布式缓存的集成没有很好地考虑,并且以“抢先优化”的方式完成,它导致的问题多于解决问题;所以回到根源并大量使用 SQL,然后在可能需要的地方有选择地集成缓存,当 SQL 的性能成为问题时似乎是最好的主意。

0 投票
1 回答
988 浏览

signalr - 可以/应该使用 SignalR 背板来构建分布式缓存吗?

我们的 Web 应用程序使用内存缓存(应用程序数据缓存)来提高吞吐量,这样就不必为每个请求从数据库(SQL Server)加载频繁查询的数据。潜在地,它将部署在网络农场中,因此我们必须解决必须同步所有节点的缓存的经典问题。所以我们需要的是分布式缓存。

现成的解决方案是 NCache 和 REDIS(可能还有更多)。但是,由于我们已经在使用 SignalR Backplane 将数据集的更改传达给 Windows 服务(和浏览器客户端),我想知道它是否可以用于实现分布式缓存。

这样做,我们将(或多或少)重用我们现有的数据集已更改消息,但在 Web 应用程序本身中订阅它们以使其缓存无效。好处是我们不必引入新的库/技术。

我想我最大的问题是:这有意义吗?而且,SignalR 背板是否足够可靠以确保不会丢失任何事件导致缓存过时?还是这种架构滥用?

0 投票
0 回答
130 浏览

.net - NCache 序列化对象,然后仅在 67MB 后抛出 OutOfMemoryException

该对象最终应序列化为大约 350MB,这远低于 32 位应用程序的限制。

我正在设置自己的紧凑型序列化器,以便可以控制序列化,我发现 MemoryStream 消耗达到了 67,108,864 字节的容量,位置为 59,913,379,它引发了 OutOfMemoryException。有什么解决方法吗?我的对象是递归的,并且以递归方式调用 serialize 方法,由此产生的分配有什么问题吗?

提前致谢。

编辑

当长度为 94610430 时,使用这个我得到一个 System.OutOfMemoryException

0 投票
1 回答
91 浏览

memory - 如何增加 NCache 内存分配

据我所知,内存分配是在创建缓存时设置的:

您知道是否可以在不重新安装缓存的情况下增加 NCache 的内存分配?我需要在生产中增加 NCache 内存大小,重新安装缓存是我能做的最后一个场景。

谢谢 !

0 投票
1 回答
173 浏览

c# - NCache 中的多个活动结果集

自从过去几周以来,我一直在评估 NCache。Mu question 特定于查询缓存数据的技术。我正在寻找类似于下面提到的 ADO.NET 技术的东西。一次提供多个查询并逐个遍历结果集的要求。

以上述方式从数据库中获取的 ADO.NET 代码如下所示。

我们可以在 NCache 中做类似的事情来查询缓存数据吗?