问题:我想缓存用户信息,以便我的所有应用程序都可以快速读取数据,但我只希望一个特定的应用程序能够写入此缓存。
我在AWS上,因此我遇到的一个解决方案是带有两个端口的memcached版本:一个端口只接受读取命令,另一个接受读取和写入。然后,我可以使用安全组来控制访问。
由于我在AWS上,如果有解决方案使用开箱即用的memcached或redis,那就太棒了。
答案 0 :(得分:3)
我建议你在11211(Memcached)使用一个开放端口的ElastiCache,然后创建一个EC2实例,设置你的安全组,这样只有这个服务器才能访问你的ElastiCache集群。使用此服务器过滤应用程序,因此只有一个特定的应用程序可以写入它。您可以使用安全组,脚本或iptable控制访问。如果您不使用VPC,则可以使用cache security group。
答案 1 :(得分:1)
我相信你可以使用Redis(而不是Memcached)来完成这项工作,这也可以通过ElastiCache获得。创建实例后,您将需要创建一个复制组并将其与已启动的缓存集群相关联。
然后,您可以将实例添加到复制组。复制组中的实例只是从主缓存集群(单个Redis实例)复制,因此(默认情况下)是只读的。
因此,在此设置中,您可以根据需要编写一个可以写入的主节点(单个端点)和多个读取节点(多个端点)。
您可以进一步采取安全措施,并为复制组分配不同的路由规则(通过VPC),以便读取数据的应用程序无法访问主节点(唯一可以写入数据的节点)。