在我最近的项目中,我必须编写一个Web服务API来从数据库返回数据。使用Redis来扩展Web服务
科技股是 - SQL服务器08 R2 - WCF
的数据是主要的键 - 值对,例如获得用户X最喜欢的颜色。
负载不是很大,但也不小 - 在高峰时约为1,000个请求/秒。
我最初的想法是使用Redis作为缓存,这意味着我们不会像往常一样击中SQL Server。然而,我一直在试图从这个配置中获得一些基准测试等,这并不是很好,这让我怀疑Redis是否真的会为我的问题提供任何好处!
建筑是 - 单独的数据库服务器 - WCF应用服务器 - IIS - Linux的服务器的Redis
当我的桌面上打转转,在20K〜OPS /秒Redis的基准。好东西。
但是,由于每次调用都将通过Web服务,所以当我放置WCF层时,我只能获得300次操作/秒。不是很好。无可否认,Web服务客户端,Web服务和数据库都位于同一台机器上,因此可能会导致结果偏差!另外,当移动到真实环境时,网络延迟将是一个主要因素。
我无法以任何方式对这些请求进行批处理。
所以 - 我的问题 - 我都是使用Redis作为缓存 - 我知道我应该在这种情况下使用缓存 - 但由于我无法将Redis与我的Web服务放在同一个盒子上那么会不会网络延迟杀死性能?
任何建议非常感谢!
邓肯