Redis緩存機制


 

(1)持久化數據庫的缺點

平常我們使用的關系型數據庫有Mysql、Oracle以及SqlServer等,在開發的過程中,
數據通常都是通過Web提供的數據庫驅動來鏈接數據庫進行增刪改查。

那么,我們日常使用的數據庫的數據都儲存在哪里呢?我們以Mysql為例。
打開我們Mysql所在的文件夾目錄下的data文件夾,如下所示:


我們可以發現,里面都是我們創建的數據庫,打開其中一個,可以看到我們創建的表,

他們以文件(格式frm和ibd)的形式存在:


也就是說,我們日常使用的關系型數據中的數據,全部存儲在我們部署數據庫的機器
的硬盤中。

一般我們的網站開發完成,上線之后,服務器的讀寫效率是網站運行速度的重要條件,
當然還有服務器的帶寬等,但是這些東西都可以通過硬件的更新升級來解決。
其實與網站運行效率息息相關的東西,就是我們的------數據庫。

數據庫處理數據的速度,與網站速度息息相關,而數據查詢、數據處理等等,
都和數據庫處理速度有關。提高數據庫的處理數據的能力,其中一個方案就是
sql語句的優化技術,sql語句寫的處理效率比較高,數據庫處理能力就會上去,
而網站的數據處理能力也會快些。

但是,當網站的處理和訪問量非常大的時候,我們的數據庫的壓力就變大了,數據庫的
連接池,數據庫同時處理數據的能力就會受到很大的挑戰,一旦數據庫承受了其最大承受
能力,網站的數據處理效率就會大打折扣。此時就要使用高並發處理、負載均衡和分布式數據庫,
而這些技術既花費人力,又花費資金。

如果我們的網站不是非常大的網站,而有想要提高網站的效率,降低數據庫的讀寫次數,我們就
需要引入緩存技術。

(2)緩存
緩存就是在內存中存儲的數據備份,當數據沒有發生本質改變的時候,我們就不讓數據的查詢去
數據庫進行操作,而去內存中取數據,這樣就大大降低了數據庫的讀寫次數,而且從內存中讀數據
的速度比去數據庫查詢要快一些,這樣同時又提高了效率。

使用緩存減輕數據庫的負載:
在開發網站的時候如果有一些數據在短時間之內不會發生變化,而它們還要被頻繁訪問,為了
提高用戶的請求速度和降低網站的負載,就把這些數據放到一個讀取速度更快的介質上(或者
是通過較少的計算量就可以獲得該數據),該行為就稱作對該數據的緩存。
該介質可以是文件/數據庫/內存。內存經常用於數據庫緩存。

緩存的兩種形式:
頁面緩存經常用在CMS(content manage system)內存管理系統里面。
數據緩存經常會用在頁面的具體數據里面。

緩存分為兩種:
頁面緩存(smarty靜態化技術)


數據緩存


(3)Redis介紹
我們要學習的一個緩存技術就是----Redis:
Redis是Remote Dictionary Server(遠程數據服務)的縮寫,由意大利人antirez(Salvatore Sanfilippo)開發的一款內存高速緩存數據庫,該軟件使用C語言編寫,它的數據模型為key-value。
它支持豐富的數據結構(類型),比如String/List/Hash/Set/Sorted Set。

可持久化(一邊運行,一邊把數據往硬盤中備份一份,防止斷電等情況導致數據丟失,等斷電情況恢復之后,Redis再把硬盤中的數據恢復到內存中),保證了數據的安全。

(4)redis和memcache比較
1.Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
2.Redis支持master-slave(主-從)模式應用
3.Redis支持數據持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用。
4.Redis單個value的最大限制是1GB,memcached只能保存1MB的數據。

 

原文來源: https://blog.csdn.net/qq_40285302/article/details/80378684

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM