内存中的缓存如何作为分布式缓存



我知道REDIS缓存是内存中缓存的一个例子。但它(REDIS(也可以充当分布式缓存。

我的问题是缓存数据存储在内存缓存中的确切位置。缓存是否直接部署在应用程序服务器上?如果是,那么REDIS作为内存中的缓存是如何作为分布式缓存的呢?

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

它可以通过多种方式实现分布式。您正在复制:每个Redis服务器都有一个相同数据的副本。此设置描述如下:https://redis.io/topics/replication

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

除此之外,还存在复杂性,因为服务器集可能会因故障或允许集群增长而发生更改。

最新更新