【CDP-云设计模式】第7章,3.内存中DB缓存模式(Inmemory DB Cache Pattern)

来源:互联网 发布:161和162端口 编辑:程序博客网 时间:2024/05/17 08:50

1.要解决的问题

  大部分的数据库工作负载在于读数据。由此,可以通过提升数据库的读取性能来全面提升系统性能。

2.云模式的说明

  您可以使用此模式,通过将常用数据缓存在内存数据中来提升数据库的读取性能。这项技术将使用过的数据置于缓存中,那么在下次使用时这些数据可以直接从内存中读取(而不是从硬盘读取)。在数据库操作中,一些耗时查询的结果、复杂计算的结果等等都是典型的缓存数据类型。

3.实施

  AWS中的“ElastiCache”是一种数据缓存服务。这项服务提供了在发生故障时自动恢复的功能。

  • 准备数据缓存。可以使用ElastiCache,也可以在EC2实例中使用开源的memcached。

  • 当读取数据时,会先在缓存中查找数据。如果缓存中没有所需数据,会从数据库中读取数据,并将数据保存在缓存中。

4.配置

图1

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将数据库负载大幅度降低,更好的分配资源,更快速访问。

0 0
原创粉丝点击