5

问题:我想缓存用户信息,以便我的所有应用程序都可以快速读取数据,但我希望只有一个特定的应用程序能够写入此缓存。

我在 AWS 上,所以我想到的一个解决方案是具有两个端口的 memcached 版本:一个端口仅接受读取命令,一个端口接受读取和写入。然后我可以使用安全组来控制访问。

由于我在 AWS 上,如果有使用开箱即用的 memcached 或 redis 的解决方案,那就太好了。

4

2 回答 2

3

我建议您在 11211(Memcached)处使用一个开放端口的 ElastiCache,然后创建一个 EC2 实例,设置您的安全组,以便只有此服务器可以访问您的 ElastiCache 集群。使用此服务器过滤您的应用程序,因此只有一个特定的应用程序可以写入它。您可以使用安全组、脚本或 iptable 控制访问。如果您不使用 VPC,则可以使用缓存安全组

于 2014-10-10T10:49:15.653 回答
1

我相信您可以使用 Redis(而不是 Memcached)来完成此任务,Redis 也可以通过 ElastiCache 获得。创建实例后,您将需要创建一个复制组并将其关联到您已经启动的缓存集群。

然后,您可以将实例添加到复制组。复制组中的实例只是从主缓存集群(单个 Redis 实例)复制而来,因此(默认情况下)是只读的。

因此,在此设置中,您有一个可以写入的主节点(单个端点)和任意数量的读取节点(多个端点)。

您可以进一步提高安全性,并为复制组分配不同的路由规则(通过 VPC),这样读取数据的应用程序就无法访问主节点(唯一可以写入数据的节点)。

于 2014-10-13T16:30:39.637 回答