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將數據庫負載大幅度降低,更好的分配資源,更快速訪問。