我知道REDIS缓存是内存缓存的一个例子。但它(REDIS)也可以充当分布式缓存。
我的问题是,缓存的数据到底存储在内存缓存中的什么地方。缓存是否直接部署在应用服务器上?如果是,那么REDIS作为内存缓存是如何作为分布式的呢?
发布于 2021-07-19 06:16:16
基本的Redis服务器是在一台机器上运行并将数据存储在内存中的单个服务器。任意数量的客户端(应用程序)都可以连接到它并获取或更新值。应用程序和Redis可以在同一台机器上,但通常在不同的机器上(例如,多台机器与同一个Redis服务器对话)。
有几种方法可以使它变得分布式。您正在复制:每个Redis服务器都有相同数据的副本。此设置如下所示:https://redis.io/topics/replication
更有趣的分布式操作涉及多个Redis服务器,每个服务器维护不同的数据子集。这需要协调。这个设置被称为Redis集群,描述如下:https://redis.io/topics/cluster-spec。在最基本的级别上,当客户端想要读取或设置密钥时,它首先对其进行散列以获得插槽编号。每台服务器负责插槽的一个子集。客户端要么维护状态以知道哪个服务器负责哪个插槽,要么请求某个服务器,服务器会告诉它。然后,它只需使用常规的Redis命令来与此服务器就此密钥进行通信。
除此之外,还存在复杂性,因为由于故障或允许集群增长,服务器集可能会发生变化。
https://stackoverflow.com/questions/68433059
复制相似问题