我正在AWS上构建一个架构,其中有几个EC2实例作为Web服务器和一个中央MySQL数据库(RDS)。 EC2实例已安装Redis以缓存单个数据库行。当MySQL中的行发生变化时,我希望每个实例也更新相应的缓存条目。
在AWS环境中执行此操作的最佳方式是什么?
答案 0 :(得分:5)
请勿使用触发器。确保事情正确提交(而不是回滚),然后然后从应用程序层中刷新。
如果不这样做,您可以设置并发请求使用旧数据重新填充缓存的情况(因为它们还没有看到新数据),因为它将从您的缓存中删除SQL触发器。
答案 1 :(得分:1)
如果您正在使用队列服务器(amazon SQS,redis pubsub等),您可以为每个要过期的记录将一个条目放入队列,并让一个工作人员监听该队列以及何时收到要告知的消息哪个记录使其无效将连接到缓存并使该记录到期。
如果您有一个缓存服务器或许多缓存服务器,您只需要一个工作服用于您拥有的每个缓存服务器,或者一个工作服可以连接到每个缓存服务器。许多工人的可扩展性更高。