remote/cloud memcached 服务有什么意义?
What's the point of remote/cloud memcached service?
据我了解,memcached主要是用来在本地内存中缓存key-value对象,以加快访问速度。
但是在像 heroku 这样的平台上,要使用 memcached,你必须选择像 Memcachier 这样基于云的附加组件。我不明白为什么这有用?网络延迟比访问本地内存高几个数量级,完全不可预测。
所以我错过了什么?
在适用的用例中,例如访问基于远程磁盘的 RDBMS 或执行昂贵的计算,网络延迟比替代方案低几个数量级。此外,虽然网络确实通常不可靠,但在正常操作期间您仍然会遇到亚毫秒级延迟。
就是说,通常本地缓存在延迟方面优于远程缓存,但另一方面,扩展可能会出现问题。
编辑:回答 OP 的评论。
您基本上可以将基于磁盘的数据库视为磁盘中数据的内存缓存 - 但数据库服务器的 RAM 是有限的(与任何其他服务器一样)。因此,外部缓存用于减轻部分压力,减少对数据库服务器资源的争用,并将其释放用于其他任务。
至于延迟,是的 - 我指的是 AWS 的网络。虽然我不太熟悉 Memcachier 的产品,但我们(Redis Labs)确保我们的 Memcached Cloud 和 Redis Cloud 实例与 Heroku 的 dynos 位于同一数据区域,以确保尽可能低的延迟。此外,我们还有一个可用区映射实用程序,可以让应用程序和缓存实例出于相同目的驻留在同一区域内。
据我了解,memcached主要是用来在本地内存中缓存key-value对象,以加快访问速度。
但是在像 heroku 这样的平台上,要使用 memcached,你必须选择像 Memcachier 这样基于云的附加组件。我不明白为什么这有用?网络延迟比访问本地内存高几个数量级,完全不可预测。
所以我错过了什么?
在适用的用例中,例如访问基于远程磁盘的 RDBMS 或执行昂贵的计算,网络延迟比替代方案低几个数量级。此外,虽然网络确实通常不可靠,但在正常操作期间您仍然会遇到亚毫秒级延迟。
就是说,通常本地缓存在延迟方面优于远程缓存,但另一方面,扩展可能会出现问题。
编辑:回答 OP 的评论。 您基本上可以将基于磁盘的数据库视为磁盘中数据的内存缓存 - 但数据库服务器的 RAM 是有限的(与任何其他服务器一样)。因此,外部缓存用于减轻部分压力,减少对数据库服务器资源的争用,并将其释放用于其他任务。
至于延迟,是的 - 我指的是 AWS 的网络。虽然我不太熟悉 Memcachier 的产品,但我们(Redis Labs)确保我们的 Memcached Cloud 和 Redis Cloud 实例与 Heroku 的 dynos 位于同一数据区域,以确保尽可能低的延迟。此外,我们还有一个可用区映射实用程序,可以让应用程序和缓存实例出于相同目的驻留在同一区域内。