如果 Redis 没有在您的应用程序服务器上运行,为什么要使用它?

ala*_*nce 5 database nosql redis

我的理解是,使用 Redis 需要您将其托管在自己的服务器上。那么,如果存储在其中的数据不是在与应用程序服务器(例如 Node)相同的虚拟机(因此使用相同的 RAM)上运行,为什么还要使用它呢?

小智 4

您根本不需要将 Redis 托管在单独的服务器上。事实上,应用程序服务器在同一服务器上运行 Redis 或 Memcached 等内存存储来执行简单的缓存任务并不罕见。

然而,我认为您问题的核心是对内存存储如何工作的根本误解。即使您要在与应用程序相同的服务器上运行 Redis,您的应用程序也永远无法直接访问 Redis 用于存储数据的 RAM 块——您仍然需要向 Redis 实例发送请求来检索数据。将 Redis 与应用程序服务器分开托管确实会引入网络延迟,但在访问或修改 RAM 中的数据方面差异为零。

  • 我很困惑。据我了解,这些“内存中”数据库速度很快,因为它们允许更快地访问存储(缓存而不是主内存)。如果您查看延迟数字,您会发现网络请求比主内存访问要昂贵得多,而主内存访问本身又比缓存引用要昂贵得多。换句话说,如果涉及网络延迟,Redis 的快速内存访问的主要优点是否会被完全破坏? (6认同)