

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据存储
<a name="data-store"></a>

 数据存储用于保存微服务所需的数据。会话数据的常用存储是内存缓存，例如 Memcached 或 Redis。 AWS 在 [Amazon](https://aws.amazon.com/elasticache/) 托管 ElastiCache服务中提供了这两种技术。

 在应用程序服务器和数据库之间放置缓存是减少数据库读取负载的常用机制，这反过来又可以允许使用资源来支持更多的写入。缓存还可以改善延迟。

 关系数据库在存储结构化数据和业务对象方面仍然非常流行。 AWS 通过亚马逊[关系数据库服务（亚马逊 RDS）提供六种数据库引擎（微软 SQL Server、甲骨文、MySQL、MariaDB、PostgreSQL 和[亚马逊 Aur](https://aws.amazon.com/rds/aurora/) ora）作为托管服务](https://aws.amazon.com/rds/)。

 但是，关系数据库并不是为无限扩展而设计的，这会使应用技术来支持大量查询变得困难和耗时。

 NoSQL 数据库的设计有利于可扩展性、性能和可用性，而不是关系数据库的一致性。NoSQL 数据库的一个重要元素是，它们通常不强制执行严格的架构。数据分布在可以水平扩展的分区上，并使用分区键进行检索。

 由于单个微服务旨在很好地完成一件事，因此它们通常具有非常适合 NoSQL 持久性的简化数据模型。重要的是要明白，NoSQL 数据库的访问模式与关系数据库不同。例如，无法联接表。如果有必要，则必须在应用程序中实现逻辑。您可以使用 [Amazon Dy](https://aws.amazon.com/dynamodb/) namoDB 创建数据库表，该表可以存储和检索任意数量的数据并处理任何级别的请求流量。DynamoDB 提供个位数的毫秒性能，但是，某些用例需要以微秒为单位的响应时间。 [DynamoDB](https://aws.amazon.com/dynamodb/dax/) 加速器 (DAX) 提供用于访问数据的缓存功能。

 DynamoDB 还提供自动扩展功能，可根据实际流量动态调整吞吐容量。但是，在某些情况下，由于应用程序中出现了持续时间较短的大型活动峰值，因此容量规划很困难或不可能。对于此类情况，DynamoDB 提供了按需选项，其定价非常简单。 pay-per-requestDynamoDB 按需能够即时处理每秒数千个请求，无需进行容量规划。

 有关更多信息，请参阅[分布式数据管理](distributed-data-management.md)和[如何选择数据库](https://aws.amazon.com/startups/learn/maximizing-performance-with-aws-databases)。