深入理解Redis概念 精

2021-08-29 04:08:39 字數 1820 閱讀 1739

redis:

是nosql , key-value ,可持久化,分布式,記憶體,快取的非關係型資料庫

有人問你什麼是redis你就上面這句話,詳細解釋分為四部分解釋:

1.nosql , key-value ,非關係型資料庫

nosql:not only structured query language(不僅僅是支援結構化的查詢語言)

這裡就要談到兩個概念:

結構化資料非結構化資料

一類相同特點的資料集合叫結構化資料,例如建立的student表

海量的資料指的都是非結構化資料,例如:大資料

------這兩類資料化結構對應的資料儲存也分為兩類------

關係型資料庫(oracle,mysql)和非關係型資料庫(mangodb,redis)

關係型資料庫儲存的都是結構化資料

非關係型資料庫儲存的可以是結構化資料也可以是非結構化資料

------非關係型資料庫儲存非結構化資料是以key-value形式------

2.可持久化,記憶體

記憶體儲存資料的缺點:

1.存的量少(解決方法:採用分布式和海量集群)

2.容易丟失,如果快取中的資料由於記憶體斷電丟失,會造成快取的擊穿和雪崩

一旦出現雪崩,整個系統將會進入癱瘓狀態,所以需要乙個能支援持久化能力的快取技術

(雪崩/快取擊穿的概念:

redis在之前占領市場時使用一種效能非常高的分布式快取技術:memorycache

但是這種技術不支援記憶體資料的持久化,容易出現由於系統故障造成的快取雪崩

例如:海量資料的請求訪問,雙十一,如果資料的訪問由於快取的未命中,也就是這麼多資料請求你快取中沒有或者由於記憶體資料丟失等原因,那麼這些請求會湧入資料庫,資料庫承受不住這麼多的請求就會導致集群宕機,海量的請求並不會消失,造成資料庫宕機-重啟-系統不可用

所以需要持久化的能力,保證記憶體資料丟失的時候,集群大部分節點的資料依然可以命中

memorycache和redis對比:

效能:差不多

可持久化:redis支援memorycache不支援

快取的資料結構:redis非常豐富(string,list,set,zset),memorycache只支援string

)

所以如果redis支援記憶體資料進行寫入磁碟的操作,那麼宕機時資料就能恢復,具有容災能力.

3.快取

redis使用快取功能解決系統效能問題

在ssm框架中,我們可以在資料庫,持久層,業務層,控制層中都可以加快取

資料庫快取:利用key-value結構記錄快取內容,同乙個sql語句是乙個key值,下次相同的執行(查詢)語句,就使用快取中的,不用再去封裝resultset集合,減少了資料磁碟的io

持久層快取:減少了連線資料庫的次數,減少resultset封裝成物件的過程

控制層和業務層快取:減少資料的傳遞次數

我們使用redis在業務層引入redis**實現資料的讀寫

4.分布式結構

多節點的redis集群搭建(資料分片)

前端概念深入理解

1 所有的前台 其實都是傳送請求,也就是拼接基於http協議的字串,發給伺服器 2 所有的後台 其實最終目的也是拼接好字串返回給前台,後台返回的資訊包括兩部分,頭資訊一般伺服器就會幫我們寫好,主體部分就是需要我們返回的資料 session技術是基於cookie的,底層還是使用了cookie,最大的乙...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...