我正在探索通过 Laravel Vapor 使用 AWS Lambda。避免使用 Redis 可以为我们节省约 56 美元/月(t2.small 约 24 美元,NAT 网关约 32 美元)。
我计划使用 DynamoDB 来代替 Redis,因为它便宜得多。与此帖子的想法基本相同https://twitter.com/JackEllis/status/1246500143425146880
我的问题是,使用 DynamoDB 作为 RDS 之上的缓存层是否有意义,或者延迟是否几乎相同,这意味着我最好只依赖 MySQL 的内部缓存?
就上下文而言,Laravel 中有一个名为 laravel-model-caching 的包,用于缓存查询结果。使用 Redis 作为缓存驱动程序是有意义的,因为即使使用 mysql 缓存,与 mysql 相比,您也能获得超低的延迟。
但是现在,如果我摆脱了 Redis,如果缓存层是另一个 DB(Dynamo),则使用该包缓存查询可能没有意义。
我的想法是否正确,DynamoDB 和 RDS 延迟没有太大差别?
答案1
几点说明...
DynamoDB 拥有一致的毫秒级延迟,我怀疑 MySQL 能否实现这一点。当然,两者都取决于实例网络性能,例如
t2.something
网络比 慢c5n.something
。您是否只有一个或多个 Laravel 节点?如果您只有一个本地安装 Redis,不需要额外的EC2实例。
Redis ElastiCache 不需要 NAT
DynamoDB 并不像看上去那么便宜。每个查询价格可能很小,但是如果您用大量查询来敲打它,将其用作缓存可能会变得非常昂贵。
希望有帮助:)