今天七夕節了,不知道你們過的是甜甜蜜蜜仍是水深火熱呀,已婚老男人不配過七夕,只能默默的蹲在電腦前敲敲代碼,寫寫文檔,這不,趁着公司下午放假的功夫,我也整理了一下關於Redis的布隆過濾器和鎖的相關知識,這裏分享給你們,但願能讓你們更好的學習。程序員
簡單一點,對於互聯網開發,咱們從單機到多機一直到微服務,隨着數據量的增多,對於數據庫的壓力也隨之增大,這個時候,勤勞的程序員們,將數據分爲冷數據和熱點數據,而後把熱點數據存儲在緩存中,提高查詢效率而且減輕數據庫的壓力,可是,這是理想環境,畢竟互聯網沒有想象中的那麼平靜。算法
比方說下面這種狀況數據庫
黑客,一個讓程序員嚮往可是又讓安所有門感到頭疼的人羣,當上面的場景:有大量不一樣的key獲取後臺數據的時候該怎麼處理,編程
在這個時候,我就不得不吹捧一波老祖宗的智慧,寧肯錯殺三千,毫不放過一個的純真理念,從而產生了神奇的布隆過濾器,那布隆過濾器是怎麼一個執行流程呢?繼續往下看緩存
布隆過濾器是─個使用錯誤率來換取空間和時間的算法錯誤率主要體如今:他說數據存在,那麼不必定存在不存在,必定不存在安全
代碼只展現部分吧,由於完整展示太多了,沒得辦法微信
固然了,出現這種狀況也不是隻有黑客攻擊,還有一種,我想不少人都參與過,它叫作限時秒殺,好比淘寶雙十一,這個時候會形成的一種狀況是大量的客戶端拿着相同的Key去後臺獲取數據,可是,這種狀況,你不能經過布隆過濾器而後去不放過一個吧,那該怎麼辦呢?鎖住他唄!微服務
可能這幾張圖這麼看有那麼一點點的模糊,我的還有平常工做,也就沒有完整的整理造成文檔,就以圖片和簡單的文字進行了簡述。學習
但願對你們有幫助!文章來源:SegmentFault博客blog
若是你想更好的提高你的編程能力,成爲一個強大的C/C++程序員!不妨和一些志同道合的小夥伴一塊兒學習成長!
C語言C++編程學習交流圈子,Q羣【757874045點擊進入】微信公衆號:C語言編程學習基地
有一些源碼和資料分享,歡迎轉行也學習編程的夥伴,和你們一塊兒交流成長會比本身琢磨更快哦!