memcached在aws环境中,最佳实践?

时间:2015-05-22 09:09:29

标签: php caching memcached

我们是关于使用memcache php客户端在我们的php应用程序中实现memcached。我们托管在AWS环境中,目前使用7个前端服务器来访问一个数据库。 当然,我们希望在所有服务器之间共享缓存。 我们应该在所有前端服务器中安装memcached并将它们添加到memcached池(callind addserver(xx.xx.xxx.xx)),还是应该将专用机器作为“memcached服务器”?

2 个答案:

答案 0 :(得分:1)

我会选择运行 memcahced 引擎的ElastiCache实例(如果你想坚持记忆)。

我们已在生产中使用此设置,并且比许多单独的安装更容易维护。另外,您不必处理不一致问题。

答案 1 :(得分:1)

您应该使用 Memcached 引擎与ElastiCache群集一起使用专用节点/服务器组成群集。
请注意,在Memcached中,节点彼此不了解,但Memcached Client处理群集中的数据分布和负载平衡。因此,您的前端服务器本质上共享 Memcached群集,而不必担心当前哪个节点正在保存数据。

这里要做的重要事情是利用ElastiCache在AWS部署中提供的 自动发现 功能,您的应用程序无需手动连接到各个缓存节点;相反,您的应用程序连接到 配置端点 。应用程序/前端服务器无需了解群集中的节点数量,并且可以根据应用程序的吞吐量和负载添加或删除任意数量的节点。
有关自动查找功能的更多详细信息,请参见here

它确实帮助了我们的生产部署,我们将Memcached集群从2个节点水平扩展到16个节点,无需重启应用程序服务器。