AWS在推出Amazon ElastiCache for Redis全托管内存缓存服务之后,现在又推出另一款,同样是兼容于Redis的内存数据库服务Amazon MemoryDB for Redis,供开发者构建需要微秒读取,以及个位数毫秒写入性能,且具有资料持久性和高可用性的应用程序。
由于交互式应用程序需要快速地处理请求和回应,AWS提到,当开发者采用微服务,且架构由许多相互独立的小服务组成时,低延迟的请求处理和回应速度更是重要。数据库在应用程序的性能占重要的位置,而要将读取延迟降低到微秒等级,开发者通常会在持久数据库前,设置像是Redis等内存缓存。
之前AWS所推出的Amazon ElastiCache for Redis,便是让用户在AWS云计算上,使用该服务作为Amazon Aurora或Amazon DynamoDB等持久数据库的低延迟缓存,不过这样的配置,用户必需要自己定义维持缓存和数据库同步的逻辑,并且也会产生执行缓存和数据库的成本。
而AWS现在推出的Amazon MemoryDB for Redis就是要来简化这个架构,用户可以将MemoryDB直接用作单个主要数据库,而不仅是持久数据库之前的低延迟缓存,也就是说,使用MemoryDB,用户的所有资料都会存储在内存中,进而实现低延迟和高吞吐量的资料访问能力。MemoryDB使用分布式交易性日志,能跨可用区域存储,支持资料恢复和节点重启,具有高持久性。
AWS解释MemoryDB和ElastiCache适合的场景,MemoryDB能够成为应用程序的主数据库,提供资料持久性,而且微秒读取和毫秒写入的速度,使用MemoryDB就不需要在数据库之前添加缓存,就可实现交互式应用程序和微服务架构所需要的低延迟。而ElastiCache对读取和写入都提供微秒延迟,适用于缓存工作负载,可加快现有数据库的访问速度,在用户可以接受资料丢失的情况,也可以将ElastiCache用作主数据库存储。
Amazon MemoryDB for Redis目前已在美东、欧洲和南美洲上线,亚洲则是孟买地区,用户可以使用AWS控制台、命令行接口和AWS开发工具包,快速创建MemoryDB集群,能够从ElastiCache搬迁到MemoryDB,或是使用存储在Amazon S3上的Redis备份文件创建集群。值得注意的是,目前MemoryDB仅支持R6g Graviton2执行实例。