【CDP-云设计模式】第7章,3.内存中DB缓存模式(Inmemory DB Cache Pattern)
2016-08-15 15:54
369 查看
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将数据库负载大幅度降低,更好的分配资源,更快速访问。
相关文章推荐
- 【CDP-云设计模式】第5章,4.高速缓存分配模式(Cache Distribution Pattern)
- 【CDP-云设计模式】第4章,8.缓存代理模式(Cache Proxy Pattern)
- 【CDP-云设计模式】第7章,1.数据库复制模式(DB Replication Pattern)
- 内存In-memory模型 缓存Cache
- 【CDP-云设计模式】第7章,2.读副本模式(Read Replica Pattern)
- 【CDP-云设计模式】第7章,4.分片写模式(Sharding Write Pattern)
- 【CDP-云设计模式】第2章,3.纵向扩展模式(Scale Up Pattern)
- 【CDP-云设计模式】第4章,9.预定的横向扩展模式(Scheduled Scale Out Pattern)
- 为程序使用内存缓存(MemoryCache)
- 【CDP-云设计模式】第5章,5.重命名分配模式(Rename Distribution Pattern)
- 【CDP-云设计模式】第4章,7.改写代理模式(Rewrite Proxy Pattern)
- 【CDP-云设计模式】第4章,6.URL改写模式(URL Rewriting Pattern)
- 【CDP-云设计模式】第4章,3.NFS共享模式(NFS Sharing Pattern)
- 状态模式在领域驱动设计中的使用(Using the State pattern in a Domain Driven Design)
- 【CDP-云设计模式】第4章,5.状态共享模式(State Sharing Pattern)
- iOS开发之缓存框架、内存缓存、磁盘缓存、NSCache、TMMemoryCache、PINMemoryCache、YYMemoryCache、TMDiskCache、PINDiskCache
- 【CDP-云设计模式】第4章,1.横向扩展模式(Scale Out Pattern)
- LinuxCacheMemory(缓存内存)
- 设置SDWebImage中maxCacheSize动态管理图片内存缓存大小无效。maxCacheSize和maxMemoryCost的定义和使用。
- 【CDP-云设计模式】第3章,1.多服务器模式(Multi-Server Pattern)