Redis是一個開源的,基于內存的數據結構存儲,可用作于數據庫、緩存、消息中間件。
從官方的解釋上,我們可以知道:Redis是基于內存,支持多種數據結構。
從經驗的角度上,我們可以知道:Redis常用作于緩存。
就我個人認為:學習一種新技術,先把握該技術整體的知識(思想),再扣細節,這樣學習起來會比較輕松一些。所以我們先以“內存”、“數據結構”、“緩存”來對Redis入門。
為什么要用Redis?
從上面可知:Redis是基于內存,常用作于緩存的一種技術,并且Redis存儲的方式是以key-value
的形式。
我們可以發現這不就是Java的Map容器所擁有的特性嗎,那為什么還需要Redis呢?
Java實現的Map是本地緩存,如果有多臺實例(機器)的話,每個實例都需要各自保存一份緩存,緩存不具有一致性
Redis實現的是分布式緩存,如果有多臺實例(機器)的話,每個實例都共享一份緩存,緩存具有一致性。
Java實現的Map不是專業做緩存的,JVM內存太大容易掛掉的。一般用做于容器來存儲臨時數據,緩存的數據隨著JVM銷毀而結束。Map所存儲的數據結構,緩存過期機制等等是需要程序員自己手寫的。
Redis是專業做緩存的,可以用幾十個G內存來做緩存。Redis一般用作于緩存,可以將緩存數據保存在硬盤中,Redis重啟了后可以將其恢復。原生提供豐富的數據結構、緩存過期機制等等簡單好用的功能。
作者:Java3y
鏈接:https://www.zhihu.com/question/316430245/answer/2426979457
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。