c# - 缓存农场,读取池

标签 c# .net asp.net caching

我有一个在 100 台服务器上运行的应用程序。此应用程序与我不喜欢的 nosql 数据库通信。 100 个服务器创建 session 、锁定、提交等。

我想构建一个缓存场或脏的真实池,IIS 服务器将去这些池并从中读取数据和对象。缓存每隔一段时间就会过期。等等

重点是避免从这 100 台服务器访问数据库。

您会为这个缓存农场使用什么?

WCF?休息?最佳实践和模式缓存 block ?还是 Windows AppFabric?

我已经有一层分布式缓存所以不考虑那个。

您会选择哪种架构?有什么建议或案例研究吗?

最佳答案

我们在这里讨论的数据量是多少?几KB? MB?一百 GB?

如果不是后者,与其重新发明轮子,不如使用现有的缓存服务之一。基于 C# 标记和 IIS 的提及,我假设您正在运行 Windows。因此,我建议您查看 Memcached

来自 Memcached 页面:

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

我自己在与您描述的环境类似的环境中使用过 Memcached(使用 MS SQL 而不是 nosql 进行数据存储)。经过第一轮缓存调整后,我们没有遇到任何问题。

在不了解您的具体要求的情况下,很难说 Memcached 是否是正确的解决方案,但它确实值得研究。作为引用,他们的 FAQ Wiki 可以在这里找到:

http://code.google.com/p/memcached/wiki/FAQ

关于c# - 缓存农场,读取池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4936950/

相关文章:

javascript - document.ready 函数中的多个函数

c# - 在 TabControl 内恢复 SplitterDistance 不一致

c# - C# 中的 cURL 模拟?

c# - 是否需要设置 NetworkCredential 域?

.net - MVC - 是模型来查看还是 Controller 来查看?

asp.net - 将 ContentPlaceHolder 放在 <script> 标记中时出现问题

c# - XML XPath SelectSingleNode 问题

c# - 是否有可能对当前被 `using` block 消耗的引用进行 GC?

c# - 无法加载文件或程序集 'MySql.Data'参数不正确

c# - 如何将动态变量传递给 asp.net mvc 中的授权属性类?