远程/云记忆服务有什么意义?

时间:2016-03-18 15:22:58

标签: caching heroku redis memcached

据我了解,memcached主要用于缓存本地内存中的键值对象以加快访问速度。

但是在像heroku这样的平台上,要使用memcached,你必须选择像Memcachier这样的附加组件,它是基于云的。我不明白为什么有用?网络延迟比访问本地内存高几个数量级,完全无法预测。

那么我错过了什么?

1 个答案:

答案 0 :(得分:2)

在适用的用例中,例如访问基于磁盘的远程RDBMS或执行昂贵的计算,网络延迟比替代方案低几个数量级。此外,虽然网络通常不可靠,但在正常操作期间仍会出现亚毫秒的延迟。

也就是说,通常本地缓存在延迟方面胜过远程缓存,但另一方面,它可能会导致扩展问题。

修改:回答OP的评论。 您基本上可以将基于磁盘的数据库视为磁盘上数据的内存缓存 - 但数据库服务器的RAM是有限的(与任何其他服务器一样)。因此,外部缓存用于减轻部分压力,减少对DB服务器资源的争用,并将其释放用于其他任务。

关于延迟,是的 - 我指的是AWS'网络。虽然我对Memcachier的报价不太熟悉,但我们(Redis Labs)确保我们的Memcached Cloud和Redis Cloud实例位于与Heroku的dynos相同的数据区域中以确保最小可能的延迟。此外,我们还有一个可用区映射实用程序,可以将应用程序和缓存实例驻留在同一区域中,以实现相同的目的。