我正在查看设置配置平台/服务的选项,该配置平台/服务将为所有客户服务/应用程序提供配置。要求是应在专用服务器上设置。
我正在探索redis是否可以作为支持复杂键值配置的可能选项之一。如果要在与消费者不同的服务器上设置redis,那么GET会涉及一些网络延迟(我不是 非常担心SET,因为它们会非常少)比GETs)。我应该在客户端计算机上设置另一个缓存层(例如EhCache或其他)以避免机器到机器的网络延迟吗?在这种情况下,需要处理缓存同步和失效。此外,我已经读过redis支持复制,但是客户端服务机器上的从服务器(它是主服务器的确切副本)将占用大量内存,因为redis主要使用RAM来存储所有数据。而且,它们都可以竞争CPU /资源。
注意:客户端服务/应用程序当前部署在Amazon ec2媒体实例上。类似的也可以用于redis。
如果这个架构有任何不错的选择,或者这根本不好,请告诉我。提前致谢。
答案 0 :(得分:4)
如果它们都是同一地区的EC2实例,那么我不会过分担心网络延迟。如果您假设您将拥有大量数据,我会使用m1large或m1xlarge进行redis。根据您的要求,缓存可能有意义,也可能没有意义。
我在EC2中使用了redis,每秒有数千个事务,没有任何问题。
答案 1 :(得分: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