您好,登錄后才能下訂單哦!
本篇文章主要介紹了Redis介紹和使用場景,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
(1)持久化數(shù)據(jù)庫的缺點(diǎn)
平常我們使用的關(guān)系型數(shù)據(jù)庫有Mysql、Oracle以及SqlServer等,在開發(fā)的過程中,數(shù)據(jù)通常都是通過Web提供的數(shù)據(jù)庫驅(qū)動來鏈接數(shù)據(jù)庫進(jìn)行增刪改查。
那么,我們?nèi)粘J褂玫臄?shù)據(jù)庫的數(shù)據(jù)都儲存在哪里呢?我們以Mysql為例。
打開我們Mysql所在的文件夾目錄下的data文件夾,如下所示:
我們可以發(fā)現(xiàn),里面都是我們創(chuàng)建的數(shù)據(jù)庫,打開其中一個(gè),可以看到我們創(chuàng)建的表,他們以文件(格式frm和ibd)的形式存在:
也就是說,我們?nèi)粘J褂玫年P(guān)系型數(shù)據(jù)中的數(shù)據(jù),全部存儲在我們部署數(shù)據(jù)庫的機(jī)器的硬盤中。
一般我們的網(wǎng)站開發(fā)完成,上線之后,服務(wù)器的讀寫效率是網(wǎng)站運(yùn)行速度的重要條件,當(dāng)然還有服務(wù)器的帶寬等,但是這些東西都可以通過硬件的更新升級來解決。其實(shí)與網(wǎng)站運(yùn)行效率息息相關(guān)的東西,就是我們的------數(shù)據(jù)庫。
數(shù)據(jù)庫處理數(shù)據(jù)的速度,與網(wǎng)站速度息息相關(guān),而數(shù)據(jù)查詢、數(shù)據(jù)處理等等,都和數(shù)據(jù)庫處理速度有關(guān)。提高數(shù)據(jù)庫的處理數(shù)據(jù)的能力,其中一個(gè)方案就是sql語句的優(yōu)化技術(shù),sql語句寫的處理效率比較高,數(shù)據(jù)庫處理能力就會上去,而網(wǎng)站的數(shù)據(jù)處理能力也會快些。
但是,當(dāng)網(wǎng)站的處理和訪問量非常大的時(shí)候,我們的數(shù)據(jù)庫的壓力就變大了,數(shù)據(jù)庫的連接池,數(shù)據(jù)庫同時(shí)處理數(shù)據(jù)的能力就會受到很大的挑戰(zhàn),一旦數(shù)據(jù)庫承受了其最大承受能力,網(wǎng)站的數(shù)據(jù)處理效率就會大打折扣。此時(shí)就要使用高并發(fā)處理、負(fù)載均衡和分布式數(shù)據(jù)庫,而這些技術(shù)既花費(fèi)人力,又花費(fèi)資金。
如果我們的網(wǎng)站不是非常大的網(wǎng)站,而有想要提高網(wǎng)站的效率,降低數(shù)據(jù)庫的讀寫次數(shù),我們就需要引入緩存技術(shù)。
(2)緩存
緩存就是在內(nèi)存中存儲的數(shù)據(jù)備份,當(dāng)數(shù)據(jù)沒有發(fā)生本質(zhì)改變的時(shí)候,我們就不讓數(shù)據(jù)的查詢?nèi)?shù)據(jù)庫進(jìn)行操作,而去內(nèi)存中取數(shù)據(jù),這樣就大大降低了數(shù)據(jù)庫的讀寫次數(shù),而且從內(nèi)存中讀數(shù)據(jù)的速度比去數(shù)據(jù)庫查詢要快一些,這樣同時(shí)又提高了效率。
使用緩存減輕數(shù)據(jù)庫的負(fù)載:
在開發(fā)網(wǎng)站的時(shí)候如果有一些數(shù)據(jù)在短時(shí)間之內(nèi)不會發(fā)生變化,而它們還要被頻繁訪問,為了提高用戶的請求速度和降低網(wǎng)站的負(fù)載,就把這些數(shù)據(jù)放到一個(gè)讀取速度更快的介質(zhì)上(或者是通過較少的計(jì)算量就可以獲得該數(shù)據(jù)),該行為就稱作對該數(shù)據(jù)的緩存。該介質(zhì)可以是文件/數(shù)據(jù)庫/內(nèi)存。內(nèi)存經(jīng)常用于數(shù)據(jù)庫緩存。
緩存的兩種形式:
頁面緩存經(jīng)常用在CMS(content manage system)內(nèi)存管理系統(tǒng)里面。
數(shù)據(jù)緩存經(jīng)常會用在頁面的具體數(shù)據(jù)里面。
緩存分為兩種:
頁面緩存(smarty靜態(tài)化技術(shù))
數(shù)據(jù)緩存
(3)Redis介紹
我們要學(xué)習(xí)的一個(gè)緩存技術(shù)就是----Redis:
Redis是Remote Dictionary Server(遠(yuǎn)程數(shù)據(jù)服務(wù))的縮寫,由意大利人antirez(Salvatore Sanfilippo)開發(fā)的一款內(nèi)存高速緩存數(shù)據(jù)庫,該軟件使用C語言編寫,它的數(shù)據(jù)模型為key-value。它支持豐富的數(shù)據(jù)結(jié)構(gòu)(類型),比如String/List/Hash/Set/Sorted Set。
可持久化(一邊運(yùn)行,一邊把數(shù)據(jù)往硬盤中備份一份,防止斷電等情況導(dǎo)致數(shù)據(jù)丟失,等斷電情況恢復(fù)之后,Redis再把硬盤中的數(shù)據(jù)恢復(fù)到內(nèi)存中),保證了數(shù)據(jù)的安全。
4)redis和memcache比較
1.Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。
2.Redis支持master-slave(主-從)模式應(yīng)用。
3.Redis支持?jǐn)?shù)據(jù)持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用
4.Redis單個(gè)value的最大限制是1GB,memcached只能保存1MB的數(shù)據(jù)。
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。