中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Redis緩存

發布時間:2021-10-11 17:19:43 來源:億速云 閱讀:479 作者:iii 欄目:編程語言

本篇內容介紹了“什么是Redis緩存”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

什么是Redis緩存

簡介

什么是Redis?

Redis是一種存儲系統,像MongoDB一樣,都是鍵值對存儲,也就是key-value結構。也就是說,Redis其實是一種數據庫,它可以跨平臺使用,本系列整合SpringBoot+Redis。

Redis本身是由C語言編寫,是符合ANSI C標準的開源系統。Redis是Remote Dictionary Server的縮寫,現在常用于分布式數據庫以及高可用緩存系統。實際上,學會Redis整合了SpringBoot后,再整合SpringCloud就是水到渠成了。

為什么要用Redis?

有朋友可能要問,既然Redis和MongoDB這么像,那我用后者不就行么,干嘛學前者?實際上MongoDB和Redis是有很大區別的,他們只是在存儲方式上有相似點。下面列出二者的不同之處:

  • 數據存儲位置

  • MongoDB存儲的數據存放在磁盤,少部分數據存放在內存中。為啥數據庫數據還要存放在內存呢?是因為數據庫的緩存系統會判斷熱點數據,頻繁存取的數據要放在內存達到高效處理。

  • Redis的數據全部存放在內存,并定期寫入磁盤,也因此造就了Redis的高性能。當內存不夠用,Redis會利用LRU(Least Recently Used)算法取代數據,沒錯,就是操作系統西面置換算法。

  • 數據存儲方式

  • MongoDB利用了mmap函數,將文件數據映射的內存進行增刪查改,修改完之后操作系統會將內存數據flush到磁盤。問題是二者并非一個事務,因此兩個事務間宕機的話,數據自然丟失。

  • Redis有兩種存儲模式,RDB與AOF模式,這個我們后面會說到。

  • 數據處理速度

  • MongoDB比Redis慢,這也是Redis屬于內存存儲系統的最大優勢。當然,我們暫時不考慮內存不夠用的情況。

除此之外,目前分布式是大廠主流技術棧,Redis是大廠會采用的分布式緩存方式。并且在應對高并發的場景上,比如阿里雙十一,騰訊游戲新皮膚的出場或者過年紅包等,利用Redis和消息隊列是主流的方法。

入門是什么程度?精通是什么程度?

入門就是對Redis完全不了解,但是你要有基礎的知識,比如基礎的數據結構,基礎的類型,基礎的內存知識,基礎的分布式知識,

基礎的Java/Spring知識和linux的基本操作。這個大可放心,我水平也一般般,所以我說的基礎一定是基礎。

精通并不是說最后能自己寫一個Redis,或者說自己能成為Redis的穩定開發維護者,我自己也做不到,所以這里的精通是能夠了解Redis的各種機制、算法,了解Redis提供的常用方法,了解Redis使用場景,自己能排坑,并且能夠自己整合SpringBoot框架。實際上,這個整合SpringBoot框架最簡單,官網寫的很詳細。最好能在Redis基礎上進行二次開發,實際上理解了原理,會寫C語言,二次開發還是不難的。

既然是系列文章,我就不能全寫在一篇里,內容太多對于我的排版和學習者的體驗也不好,所以我會盡量把每一篇文章壓縮在一個可以接受的長度范圍,當然,我盡量在每一篇文章都給出系列所有文章的鏈接,供大家,也供我日后方便查閱。如果文章能幫到你,希望給個贊鼓勵下,雖然不是靠這個生存,但是得到認可還是很高興的。

緩存以及使用場景

什么是緩存?

緩存實際上就是某個程序利用內存來優化頻繁讀取的數據的一種方式。緩存就是內存的一部分。之前我們寫到,數據庫操作往往是存儲在磁盤中的,但是磁盤的IO又慢的不得了,怎么辦?程序猿們想了一種方法,就是利用好內存。不是磁盤IO慢么,那就利用內存好了,內存IO很快的,但是東西太多,放不進內存怎么辦?那就把常用的數據放在內存吧。

現在是2021年,熟悉NBA的朋友都知道,今年威少的數據又爆炸,所以球迷可能會時常看威少的數據,加上威少的粉絲也不少,可能就存在高并發的問題。但是每次從磁盤拿數據也太慢了,那就把單獨把威少的數據放在內存中,別人的數據繼續躺在磁盤里,這樣大大加快了系統響應的速度,這就是緩存。

但是,NBA可不止有一個球星,庫里,詹姆斯,約基奇等都是很出色的球員,擁有球迷的數量不比威少少,那就把他們的數據都放在緩存中吧,這樣就快了。但是我們發現,NBA球星太多了,內存放不下,怎么辦?這就引出了我們的常見的緩存淘汰算法,對操作系統有了解的朋友可能知道,什么LRU,LFU,FIFO,FILO等等,我把這個放在后面的Redis算法機制里說。

本地緩存與分布式緩存

先看看例子,還是NBA球員,現在我的內存太小了啊,每個計算機只能存放一名NBA球員的數據,但是我現在有3名球員數據需要存放在計算機里面怎么辦?

本地緩存

本地緩存就是將數據存放在本地內存中,由于不需要通過網絡連接到其他主機,自然速度也最快,當然缺點也是有的。比如Mybatis一二級緩存,Caffeine,Guava都是本地緩存的典型范例。回到之前的例子,3名球員放在3臺不同的主機,如果用本地緩存的架構就是這樣的:

什么是Redis緩存

  • 優點:

速度快,不用經過網絡傳輸

  • 缺點:

每臺主機可用緩存容量有限

多節點無法共享數據

分布式緩存

分布式緩存就是利用網絡,將緩存放在某一臺主機上,這樣緩存的容量限制就是緩存機的內存大小,其IO瓶頸就是網速。Redis就是典型的分布式緩存,當然,我們也可以讓Redis變成徹頭徹尾的本地緩存,不經網絡調用即可。

什么是Redis緩存

當然,上圖并不準確,既然緩存的分布式了,當然不能只部署在一臺緩存機上,往往都是集群的方式部署緩存機的。

“什么是Redis緩存”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

右玉县| 汤阴县| 鹤岗市| 江陵县| 达孜县| 铅山县| 宁津县| 常州市| 庆安县| 措美县| 龙岩市| 凯里市| 仙居县| 灵山县| 健康| 章丘市| 博客| 临漳县| 南通市| 谷城县| 鹤峰县| 普兰县| 柞水县| 清水河县| 渑池县| 临桂县| 稻城县| 东乡族自治县| 米脂县| 阿瓦提县| 奎屯市| 延安市| 余庆县| 泰宁县| 台南县| 郁南县| 尚义县| 丹棱县| 石首市| 绥芬河市| 大邑县|