1.要解决的问题
大部分的数据库工作负载在于读数据。由此,可以通过提升数据库的读取性能来全面提升系统性能。
2.云模式的说明
您可以使用此模式,通过将常用数据缓存在内存数据中来提升数据库的读取性能。这项技术将使用过的数据置于缓存中,那么在下次使用时这些数据可以直接从内存中读取(而不是从硬盘读取)。在数据库操作中,一些耗时查询的结果、复杂计算的结果等等都是典型的缓存数据类型。
3.实施
AWS中的“ElastiCache”是一种数据缓存服务。这项服务提供了在发生故障时自动恢复的功能。
准备数据缓存。可以使用ElastiCache,也可以在EC2实例中使用开源的memcached。
当读取数据时,会先在缓存中查找数据。如果缓存中没有所需数据,会从数据库中读取数据,并将数据保存在缓存中。
4.配置
5.好处
可以使用高速缓存来减少数据库的读取负载,从而提高整个系统的性能。
可以使用ElastiCache简化操作,而且ElastiCache应对故障的能力也很强。
6.注意事项
在缓存查询结果时需要做一些权衡。对相关表的特定查询的读写比例很重要。例如,当引用特别频繁(每分钟多次),而数据更新并不多(每天甚至每小时)时,那么缓存会很有价值。另一方面,需要防止陈旧数据残留在缓存中。参考信息:http://highscalability.com/bunch-great-strategies-using-memcached-and-mysql-better-together
使用缓存可能需要您修改访问数据库的程序。
7.Q&A
Q1:实施中,除了可以使用ElastiCache,还可以使用开源的memcached。这里的memcached是什么?
A1:Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。