在我最新的项目中,我必须编写一个 Web 服务 API 来从数据库中返回数据。
技术是 - SQL Server 08 R2 - WCF
数据主要是键值对,例如用于获取用户 X 最喜欢的颜色。
负载不是很大,但也不是小菜一碟——峰值约为 1,000 个请求/秒。
我最初的想法是使用 Redis 作为缓存,这意味着我们不会经常访问 SQL Server。但是我一直在尝试从这个配置中获得一些基准测试等,但效果并不好,这让我想知道 Redis 是否真的能为我的问题带来任何好处!
架构是 - 单独的数据库服务器 - WCF 应用服务器 - IIS - Linux Redis 服务器
在我的桌面上玩时,Redis 的基准测试速度约为 20K ops / sec。好东西。
但是,考虑到每个调用都将通过一个 Web 服务,当我放置一个 WCF 层时,我只能获得 300 ops / sec。不是很好。诚然,Web 服务客户端、Web 服务和数据库都在同一台机器上,这样可能会导致结果出现偏差!
此外,当迁移到真实环境时,网络延迟将是一个主要因素。
我无法以任何方式批量处理这些请求。
所以-我的问题-我完全赞成将Redis用作缓存-我知道在这种情况下我应该使用缓存-但是鉴于我不能将Redis与我的Web服务放在同一个盒子上,那么网络延迟就不会杀死性能?
任何建议都非常感谢!
邓肯