關於Redis快取機制
注:參考部落格 https://blog.csdn.net/acmman/article/details/53167917
https://blog.csdn.net/lzl9421na/article/details/76651374
NoSql:泛指非關係型資料庫
一、為什麼要使用快取技術?
(1)持久化資料庫的缺點
關係型資料庫有Mysql、Oracle以及SqlServer等,在開發的過程中,資料通常都是通過Web提供的資料庫驅動來連結資料庫進行增刪改查,資料全部儲存在我們部署資料庫的機器的硬碟中。當網站的處理和訪問量非常大的時候,資料庫的壓力就變大,降低資料庫的讀寫次數,我們就需要引入快取技術。
(2)快取
如果有一些資料在短時間之內不會發生變化,而它們還要被頻繁訪問,為了提高使用者的請求速度和降低網站的負載,就把這些資料放到一個讀取速度更快的介質上(或者是通過較少的計算量就可以獲得該資料),該行為就稱作對該資料的快取。
快取的兩種形式:
頁面快取經常用在CMS(content manage system)記憶體管理系統裡面。
1.頁面快取 :
第一次從資料庫讀取,然後生成一個靜態頁面,以後所有的讀取,只需載入這個靜態頁面就可以了資料快取經常會用在頁面的具體資料裡面
2.資料快取:
比如淘寶,商品隨時有變化,一個頁面需要從好幾種資料快取中讀取資料模組,這種就不適合用頁面快取
Redis介紹
Redis是Remote Dictionary Server(遠端資料服務)的縮寫,由義大利人antirez(Salvatore Sanfilippo)開發的一款記憶體快取記憶體資料庫,該軟體使用C語言編寫。
Redis內部是一個key-value儲存系統。它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、sset(sorted set –有序集合)和hash(雜湊型別,類似於Java中的map)。Redis基於記憶體執行並支援持久化的NoSQL資料庫,也被人們稱為資料結構伺服器
使用磁碟進行持久化(一邊執行,一邊把資料往硬碟中備份一份,防止斷電等情況導致資料丟失,等斷電情況恢復之後,Redis再把硬碟中的資料恢復到記憶體中),保證了資料的安全。
在記憶體資料庫方面的另一個優點是,相比在磁碟上相同的複雜的資料結構,在記憶體中操作起來非常簡單,這樣Redis可以
做很多內部複雜性很強的事情。
非常快,每秒可執行大約110000次的設定(SET)操作,每秒大約可執行81000次的讀取/獲取(GET)操作。
操作具有原子性 - 所有Redis操作都是原子操作,這確保如果兩個客戶端併發訪問,Redis伺服器能接收更新的值。
redis和memcache比較
1.Redis不僅僅支援簡單的k/v型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。
2.Redis支援master-slave(主-從)模式應用
3.Redis支援資料持久化,可以將記憶體中的資料保持在磁碟中,重啟的時候可以再次載入進行使用。
4.Redis單個value的最大限制是1GB,memcached只能儲存1MB的資料。
加上個人總結的部分,以上。