1.1 數據庫對比
緩存:將數據存儲到內存中,只有當磁盤勝任不了的時候,才會啟用緩存
缺點:斷電數據丟失(雙電),用緩存存儲數據的目的只是為了應付大并發的業務。
數據庫:mysql(關系型數據庫,能夠保證數據一致性,保證數據不丟失,當因為功能太多,導致性能不高) ===數據參考
緩存數據庫:memcache redis(非關系型數據庫,性能極高,但不保證數據完整性) === 業務的數據提供者
memcachedb 會將內存的數據寫入到磁盤中
redis 主要工作場所是內存中,但是定期備份內存數據到硬盤
1.1.1 數據庫的選擇
數據存儲,數據倉庫選擇mysql這種磁盤的數據庫
高并發,業務大的應用選擇memcache這種內存數據庫
1.1.2 數據庫分類
關系型數據庫? mysql
非關系型數據庫(NOSQL) memcached redis MongoDB
1.2 memcached介紹
Memcached是一款開源的、高性能的純內存緩存服務軟件。Mem是內存的意思,cache是緩存的意思,d是daemon的意思。
memcache 是項目名稱,也是一款軟件,其架構是C/S架構。
memcached官網:http://memcached.org/
1.2.1 memcache優點
①?? 對于用戶來講,用戶訪問網站更快了,體驗更好了。
②對網站來說,數據庫壓力降低了。只有當內存沒有數據時才會去請求數據庫。第一次寫入的數據也會請求數據庫。一般公司沒有預熱,只有當用戶讀取過數據庫才會放到Memcached中。
②?? 提升了網站的并發訪問,減少服務器數量。
1.3 Memcached在企業中使用場景
1.3.1 作為數據庫的前端緩存應用
當數據庫(mysql)承受不了大并發的請求時,可以將數據緩存到內存中(緩存數據庫),然后就可以解決
作為數據庫的前端緩存最大目的:減少數據庫被大量訪問的壓力
1.3.2 作為集群后端的session會話保持
session存儲在文件,數據庫,memcache,或內存等的服務端上,