2012-12-21 57 views
4

我正在通过设置配置平台/服务的选项来为所有客户端服务/应用程序提供配置。要求是这应该在专用服务器上设置。在同一台服务器上设置redis及其客户端应用程序

我在研究redis是否可以作为支持复杂键值配置的可能选项之一。如果Redis要设置在不同于服务器的服务器上,那么GET会涉及一些网络延迟(我不是非常担心SET,因为它们将比GET少得多)。我应该在客户机上设置另一个缓存层(例如EhCache或其他)以避免机器到机器的网络延迟?在这种情况下需要处理高速缓存同步和失效。另外,我读过redis支持复制,但客户端服务器上的从服务器(这是主服务器的精确副本)将占用大量内存,因为redis主要使用RAM来存储所有数据。此外,他们都可以争夺CPU /资源。

注意:客户端服务/应用程序当前部署在Amazon EC2媒体实例上。而且类似的也可以用于redis。

请让我知道,如果有这个架构有任何好的选择,或者这根本不好。提前致谢。

+0

我们在说什么类型的GET /秒?这两个实例是否在同一个网络上? – sberry

+0

这两个将在同一地区的亚马逊ec2实例。 GET /秒可能最多为几百或几千。 – Swapnil

回答

4

如果他们都在同一个地区的EC2实例,那么我不会太担心网络延迟。如果你认为你有很多数据,我会使用m1large或m1xlarge作为redis。根据您的要求,缓存可能有意义也可能没有意义。

我已经在EC2中使用了redis,每秒交易数千次,没有任何问题。

+0

感谢您的快速响应。 “如果他们都是在同一地区的EC2实例,那么我不会太担心网络延迟。” - 没有本地缓存​​帮助避免延迟? – Swapnil

4

如果您好奇,我最近基准了从本地Redis服务器或同一个数据中心的请求之间的差异。我在Rackspace服务器上测试过。我使用的Redis服务器已经建立了一些长长的字符串列表。每个字符串大约400字节。我使用lrange命令检索数据,在每个示例中调用它60次,并尝试请求列表的一小部分(每个lrange命令15个项目)和整个列表(每个lrange命令1000个项目)。

结果如下。

Server Location  Items/request Time (s) 
Regional Server  1000    4.270628188 
Regional Server  15    0.095376321 
Local Host   1000    0.207240364 
Local Host   15    0.00823119 
相关问题