Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 什么';远程/云memcached服务的意义何在?_Caching_Heroku_Redis_Memcached - Fatal编程技术网

Caching 什么';远程/云memcached服务的意义何在?

Caching 什么';远程/云memcached服务的意义何在?,caching,heroku,redis,memcached,Caching,Heroku,Redis,Memcached,据我所知,memcached主要用于在本地内存中缓存键值对象,以加快访问速度 但在heroku这样的平台上,要使用memcached,您必须选择Memcacheer这样的插件,它是基于云的。我不明白这为什么有用?网络延迟比访问本地内存高几个数量级,完全不可预测 那么我缺少什么呢?在适用的用例中,例如访问基于磁盘的远程RDBMS或执行昂贵的计算,网络延迟比备选方案低几个数量级。此外,虽然网络通常是不可靠的,但在正常操作过程中,仍然会出现亚毫秒的延迟 这就是说,通常本地缓存在延迟方面优于远程缓存,但

据我所知,memcached主要用于在本地内存中缓存键值对象,以加快访问速度

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


那么我缺少什么呢?

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

这就是说,通常本地缓存在延迟方面优于远程缓存,但另一方面,扩展起来可能会有问题

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


至于延迟,是的,我指的是AWS的网络。虽然我对Memcachier的产品不太熟悉,但我们(Redis实验室)确保我们的Memcached Cloud和Redis Cloud实例与Heroku的dynos位于同一数据区域,以确保尽可能减少延迟。此外,我们还提供了一个可用区域映射实用程序,使应用程序和缓存实例可以出于相同目的驻留在同一区域内。

DB自己的缓存如何?我认为大多数数据库都有自己的缓存,如果打开了,memcached还有意义吗?此外,只有当memcached服务器位于同一区域时,才能实现次毫秒延迟?