1

我有一个架构问题 - 与我基于 ravendb 的设置有关。

我有以下内容:

ravendb -> wcf 服务 -> (web/iphone/android)

web/iphone/android 级别实际上(目前 - 这正在增长)与 7 个 wcf 服务的连接

目前这 7 个服务与同一个 ravendb 通信——这很可能在未来的重构闪电战中被分割,因为它们不需要在同一个实例上——模型的交叉很少——如果根本没有的话。

我的问题是这样的:

我正在考虑使用 memcached - 在哪些方面(我几乎没有设置它的经验)我可以/应该使用 memcached 吗?

在 ravendb 和 wcf 之间?在 wcf 和 (web/iphone/android) 之间?

之间?

我可能会遇到过时的数据问题吗?这是照顾好还是我过度简化了事情?

4

2 回答 2

4

正如许多人会告诉你的那样:过早的优化是万恶之源(我认为他们都在引用 Donald Knuth)。因此,当您遇到性能问题时,请稍候(您无需等待系统崩溃。等到您看到 90% 的资源利用率)

话虽如此,当您希望在缓存数据失效之前使用缓存数据时,您应该使用 memcached(或任何类型的缓存)(改进因素将根据许多其他因素而变化,例如:操作成本和频率访问的数据)

要回答您的“在哪里”问题,这实际上取决于您将在哪里节省最多的资源,而且它确实是特定于应用程序的,无法在这里回答。

于 2011-01-23T10:35:28.553 回答
0

作为一个额外的指针,RavenDB REST 接口使用 ETags 来支持基于 HTTP 的缓存功能。如果您的 HTTP 客户端可以很好地使用这些机制,那么您将获得一些开箱即用的不错的缓存。

不过,我不确定这如何与 WCF 堆栈一起使用

于 2011-01-23T10:43:45.587 回答