内存缓存如何作为分布式运行?

How does in-memory cache acts as distributed?

我知道REDIS缓存是内存缓存的一个例子。但它(REDIS)也可以作为分布式缓存。

我的问题是缓存数据究竟存储在内存缓存中的什么位置。缓存是直接部署在应用服务器上吗?如果是,那么作为内存缓存的 REDIS 是如何作为分布式的?

基本的 Redis 服务器是在一台机器上运行并在内存中存储数据的单个服务器。任意数量的客户端(应用程序)都可以连接到它并获取或更新值。应用程序和 Redis 可以在同一台机器上,但通常在不同的机器上(例如,多台机器与同一个 Redis 服务器通信)。

它可以通过多种方式分发。你是复制:每个 Redis 服务器都有相同数据的副本。此设置在此处描述:https://redis.io/topics/replication

更有趣的分布式操作涉及多个Redis 服务器,每个服务器维护不同的数据子集。这需要协调。此设置称为 Redis 集群,如下所述:https://redis.io/topics/cluster-spec。在最基本的层面上,当客户端想要读取或设置密钥时,它首先对其进行哈希处理以获得槽号。每个服务器负责插槽的一个子集。客户端要么维护状态以了解哪个服务器负责哪个插槽,要么询问某个服务器,哪个服务器会告诉它。然后它只使用常规的 Redis 命令与该服务器就此密钥进行通信。

除此之外,还存在复杂性,因为由于故障或允许集群增长,服务器组可能会发生变化。