我是否正确地认为,在我能够负担得起专用服务器或拥有任何备用服务器之前,我可以通过EC2成功运行少量的memcached服务器?
随着亚马逊今天宣布新的自动扩展和负载平衡,你们认为这是一个可行的选择吗?
你建议我采取什么基本技术步骤?
谢谢
目前,我有一个专用服务器,没有memcached服务器.我想使用EC2的强大功能来设置几个实例并运行这样的memcached服务器.这是我目前的设置.
负载平衡与Memcached无关 - 它使用哈希算法连接到服务器
我强烈建议不要对Memcached使用自动缩放 - 添加服务器会破坏散列算法并使缓存无效.数据将丢失,您将不得不重新安排.
您需要检查从服务器到EC2的延迟 - 如果超过50毫秒,您将大大损害您的性能.好吧,无论如何我都会假设.
您可以通过一个请求拉出多个键(请参阅此处了解如何)以减少延迟效果,但您仍然可以使用初始命中.这也意味着您需要知道在拨打电话之前要获得的所有密钥.否则,每个请求会为脚本的执行时间增加50毫秒(或更多).
考虑您尝试缓存的数据.一块64mb的大板足够帮你吗?您可以在主服务器上运行它.
要真正利用memcached,您需要让memcache尽快与代码通信.您可能想要调查EC2服务器与您自己的服务器之间的延迟时间.
最终,你可能会更好地将当前盒子上的ram提升到类似4演出(应该运行大约50美元)并将memcached放在主服务器上.该文档实际上建议您在提供请求的同一服务器上安装memcached.根据应用程序的大小及其作用,具有一两个演出的memcached实例可能比您需要的更多.
此外,如果您没有使用像APC或Eaccelerator这样的php对象缓存引擎,那也会有所帮助.