关系数据库是大多数应用程序的基础。但是,在可扩展性和低延迟方面,您能用于提高性能的措施有限。即使通过添加副本来扩展读取次数,基于磁盘的存储也有物理限制。应对这种限制的最有效策略是使用内存中缓存对基于磁盘的数据库加以补充。

在本教程中,您将学习如何通过向关系数据库添加内存中缓存层来提高应用程序的性能。您将在 MySQL 数据库上使用 Amazon ElastiCache for Redis 实施缓存端策略。缓存端策略是提高数据库性能的最常用方案之一。当应用程序需要从数据库读取数据时,它会先查询缓存。如果没有找到数据,应用程序将查询数据库并将结果填充到缓存。如果在底层数据库中修改相关记录,有许多方法可以使缓存失效,但是在本教程中,我们将使用 Redis 提供的生存时间 (TTL) 过期功能。

本教程中创建的 ElastiCache for Redis 节点和 MySQL 数据库符合使用 AWS 免费套餐的资格。

使用 Amazon ElastiCache for Redis 实施缓存端策略

时间:120 分钟

费用:免费套餐资格

使用案例:缓存、扩展、高可用性、实时应用程序

产品:Amazon ElastiCache for Redis、Amazon RDS MySQL 和 AWS 免费套餐

受众:开发人员

等级:初级到中级

上次更新日期:2019 年 7 月 25 日

*此估算值假定您在整个教程中遵循建议的配置,并在 2 小时内终止所有资源。

**过去 24 小时内创建的账户可能尚不具有访问此项目所需资源的权限。

请留出 20 分钟的时间完成先决条件部分。 

本教程借助几个用 Python 语言编写的示例说明了一些机制,以阐明一些缓存技术。我们希望这些代码能很容易地转换为您选用的语言。

要完成本教程,您需要访问 EC2 实例。如果您尚未运行任何实例,请按照下面的说明预置一个。

访问 EC2 实例之后,运行以下命令: 

$ sudo yum install git -y
$ sudo yum install mysql -y
$ sudo yum install python3 -y
$ pip3 install --user virtualenv
$ git clone https://github.com/aws-samples/amazon-elasticache-samples/
$ cd amazon-elasticache-samples/database-caching
$ virtualenv venv
$ source ./venv/bin/activate
$ pip3 install -r requirements.txt

现在您已准备就绪,可以开始学习教程了。