redis是基於記憶體的key-value資料庫;
redis是用來進行做高效能查詢的非關係型資料庫,因為它的資料是存在記憶體中,所以,讀取的效率非常高,所以,用它來儲存一些熱點資料,也就是說,經常被訪問的資料,併發量高的資料。放在redis中進行查詢。可以極大的提高使用者請求的響應速度,並且同時可以極大的緩解資料庫的壓力。
redis的優點,查詢速度飛快。而且支援多種資料結構型別。這些複雜的資料型別,配合其效能又可以去做一些特定的服務和功能。總之就是很強。
redis的缺點: 因為是基於記憶體的儲存,所以,儲存量是有限的,只能用於少量資料的儲存和查詢。這個就是redis的明顯的缺點了 。
在現實生活中redis的應用場景有那些?
就是用來做非關聯式資料庫,用來提供熱點資料的高效查詢。
而用redis資料庫會引發那些問題呢?
用redis 資料庫會引發的問題有:
資料庫(data base),簡稱db。
第一:快取穿透問題:
這個就是使用者去查詢快取和資料庫中都沒的資料,這樣的話,會造成資料庫壓力增大。因為查詢資料庫,是要遍歷資料庫的。重複查詢不存在的資料,是會造成資料庫短時間重複遍歷,如果資料庫的資料量很大的話,你想想,會造成什麼 後果?
解決方法:
1,對於一些不合法的查詢,比如id<0;直接在表層給過濾掉。
2,或者在資料庫中存入資料,key-null,設定較短的失效時間,比如30秒。
第二:快取擊穿問題:
這個就是使用者去查詢快取中沒有,而資料庫中有的資料。大量的使用者去查詢同一條資料,造成了高併發的訪問,使得資料庫壓力增大。 造成這種現象的原因是:在快取中,熱點資料失效。所以,同一時間,大量使用者去訪問資料庫。
解決方法:
1。設定熱點資料永不失效。
2.加互斥鎖,具體細節不會
第三:快取雪崩問題:
這個就是快取中的大量資料同一時間失效, 這樣的話,這大量的資料就要去資料庫中查詢,嚴重的時候能導致資料庫宕機。
解決方法:
1.設定熱點資料永不過期。
2.設定熱點資料,隨機過期時間,以此減輕伺服器壓力。
第四:資料庫和快取雙寫一致性問題:
這個就是說,如何能夠保證資料庫中的資料和快取中的資料一致性的問題?
更新的機制有一些,但是都有問題,其中最好的就是
先更新資料庫,再進行刪除快取。
為什麼要這樣呢? 因為這樣子可以很大的保證資料一致性的問題。facebook用的就是這個。
這個理論上也是會有問題的,但是根據資料的讀寫速度,和併發的規則,巧妙的避開了很多的坑。
可以看看這個
如果刪除快取失敗那麼就重複進行刪除好了,直到刪除成功。
redis的效能很高,可以支援每秒10w次的併發,影響redis效能的有那些?
第一:網路 主要是說的是頻寬 影響資料的傳輸
第二:cpu
第三:記憶體 對於比較大的資料,比如10k的操作會變慢。
其它:在虛擬機器中會變慢,連線數提高的時候會變慢。
其中最主要的就是儲存的值的大小。如果值大的話,對效能的影響就非常大。這裡超過10k影響的就是記憶體和頻寬了,超過最大傳輸單元,一般是1000多位元組吧,1k好像等於1024位元組吧。
redis底層是使用socket進行通訊的。這是因為,socket通訊,簡潔高效,傳輸的內容非常簡單。這樣能有效減少儲存的值的大小,而效能就等於 頻寬 / 傳輸的值大小, = 單位時間的併發量。
我也不知道這樣說準確嗎? 但是redis是有個通道機制的,就是查詢值,批量進行查詢,不需要等乙個響應之後,再進行下乙個查詢,這樣的話,效能可以提高4倍左右。
學習乙個東西,應該從那些方面去學習?
第一 : 這個東西是什麼?
第二 : 這個東西的用處 ?為什麼用它,有什麼好處?
第三 :這個東西是怎麼實現的?
此為素質三連!!!
Vue之路 (一)初步了解vue框架
vue.js 讀音 vju 類似於 view 是一套構建使用者介面的 漸進式框架。與其他重量級框架不同的是,vue 採用自底向上增量開發的設計。vue 的核心庫只關注檢視層,並且非常容易學習,非常容易與其它庫或已有專案整合。另一方面,vue 完全有能力驅動採用單檔案元件和 vue 生態系統支援的庫開...
成長之路 專案小組長的初步感受
專案進行到中下期了,不得不寫寫這段時間的感受 以免後期的總結描寫敘述記錄的不清楚.這次積極主動的當上了乙個不太大的專案組長,首先謝謝大家對對我信任,尤其是對某人了 開始的時候,自己覺著這方面的經驗欠缺,就找了幾個前輩,諮詢了一下,然後就在自己的計畫本上開始羅列自己的計畫,講到了這個專案要給上面乙個什...
藍芽成長之路
藍芽最初由愛立信公司創制,後來由藍芽技術聯盟訂定技術標準。這個無線技術的名稱取自古代丹麥維京國王harald blaatand 的名字,直接翻譯成中文,便是 藍芽 1998年 藍芽推出0.7 版,這是藍芽的首個版本,支援 baseband 與lmp 通訊協定兩部分。1999年 這是藍芽發展歷史上的重...