Java面試中有關(guān)分布式的題目集錦
對(duì)于在Java面試中遇到有關(guān)分布式的題目,你需要盡量表現(xiàn)出自己的思維深入并系統(tǒng)化,Java知識(shí)理解得也比較全面,一定要避免讓面試官覺(jué)得你是個(gè)“知其然不知其所以然”的人。畢竟掌握的扎實(shí),是日常工作中進(jìn)行問(wèn)題診斷或者性能調(diào)優(yōu)等很多事情的基礎(chǔ),相信沒(méi)有招聘方會(huì)不喜歡“熱愛(ài)學(xué)習(xí)和思考”的面試者。下面,千鋒老師為大家總結(jié)了很多有關(guān)分布式的題目,希望對(duì)大家有所幫助。
一.Redis和Memcache的區(qū)別?
1、存儲(chǔ)方式 Memecache把數(shù)據(jù)全部存在內(nèi)存之中,斷電后會(huì)掛掉,數(shù)據(jù)不能超過(guò)內(nèi)存大小。 Redis有部份存在硬盤(pán)上,redis可以持久化其數(shù)據(jù)
2、數(shù)據(jù)支持類型 memcached所有的值均是簡(jiǎn)單的字符串,redis作為其替代者,支持更為豐富的數(shù)據(jù)類型 ,提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)
3、使用底層模型不同 它們之間底層實(shí)現(xiàn)方式 以及與客戶端之間通信的應(yīng)用協(xié)議不一樣。 Redis直接自己構(gòu)建了VM 機(jī)制 ,因?yàn)橐话愕南到y(tǒng)調(diào)用系統(tǒng)函數(shù)的話,會(huì)浪費(fèi)一定的時(shí)間去移動(dòng)和請(qǐng)求。
4、value 值大小不同:Redis 最大可以達(dá)到 1gb;memcache 只有 1mb。
5、redis的速度比memcached快很多
6、Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
二.使用Redis有哪些好處?
(1) 速度快,因?yàn)閿?shù)據(jù)存在內(nèi)存中,類似于HashMap,HashMap的優(yōu)勢(shì)就是查找和操作的時(shí)間復(fù)雜度都是O(1)
(2) 支持豐富數(shù)據(jù)類型,支持string,list,set,sorted set,hash
(3) 支持事務(wù),操作都是原子性,所謂的原子性就是對(duì)數(shù)據(jù)的更改要么全部執(zhí)行,要么全部不執(zhí)行
(4) 豐富的特性:可用于緩存,消息,按key設(shè)置過(guò)期時(shí)間,過(guò)期后將會(huì)自動(dòng)刪除
三.什么是redis持久化?rdb和aof的比較?
持久化就是把內(nèi)存的數(shù)據(jù)寫(xiě)到磁盤(pán)中去,防止服務(wù)宕機(jī)了內(nèi)存數(shù)據(jù)丟失。
比較:
1、aof文件比rdb更新頻率高,優(yōu)先使用aof還原數(shù)據(jù)。
2、aof比rdb更安全也更大
3、rdb性能比aof好
4、如果兩個(gè)都配了優(yōu)先加載AOF
四.Redis最適合的場(chǎng)景?
(1)會(huì)話緩存(Session Cache)
最常用的一種使用Redis的情景是會(huì)話緩存(session cache)。用Redis緩存會(huì)話比其他存儲(chǔ)(如Memcached)的優(yōu)勢(shì)在于:Redis提供持久化。
(2)全頁(yè)緩存(FPC)
除基本的會(huì)話token之外,Redis還提供很簡(jiǎn)便的FPC平臺(tái)。回到一致性問(wèn)題,即使重啟了Redis實(shí)例,因?yàn)橛写疟P(pán)的持久化,用戶也不會(huì)看到頁(yè)面加載速度的下降,這是一個(gè)極大改進(jìn),類似PHP本地FPC。
再次以Magento為例,Magento提供一個(gè)插件來(lái)使用Redis作為全頁(yè)緩存后端。
此外,對(duì)WordPress的用戶來(lái)說(shuō),Pantheon有一個(gè)非常好的插件 wp-redis,這個(gè)插件能幫助你以最快速度加載你曾瀏覽過(guò)的頁(yè)面。
(3)隊(duì)列
Reids在內(nèi)存存儲(chǔ)引擎領(lǐng)域的一大優(yōu)點(diǎn)是提供 list 和 set 操作,這使得Redis能作為一個(gè)很好的消息隊(duì)列平臺(tái)來(lái)使用。Redis作為隊(duì)列使用的操作,就類似于本地程序語(yǔ)言(如Python)對(duì) list 的 push/pop 操作。
(4)排行榜/計(jì)數(shù)器
Redis在內(nèi)存中對(duì)數(shù)字進(jìn)行遞增或遞減的操作實(shí)現(xiàn)的非常好。集合(Set)和有序集合(Sorted Set)也使得我們?cè)趫?zhí)行這些操作的時(shí)候變的非常簡(jiǎn)單,Redis只是正好提供了這兩種數(shù)據(jù)結(jié)構(gòu)。所以,我們要從排序集合中獲取到排名最靠前的10個(gè)用戶–我們稱之為“user_scores”,我們只需要像下面一樣執(zhí)行即可:
(5)發(fā)布/訂閱
最后(但肯定不是最不重要的)是Redis的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場(chǎng)景確實(shí)非常多。我已看見(jiàn)人們?cè)谏缃痪W(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用Redis的發(fā)布/訂閱功能來(lái)建立聊天系統(tǒng)!

猜你喜歡LIKE
最新文章NEW
相關(guān)推薦HOT
更多>>熱門(mén)推薦
參加完長(zhǎng)沙Java培訓(xùn)班之后怎么面試找工作?
沸參加長(zhǎng)沙IT培訓(xùn)好找工作嗎?這些環(huán)節(jié)能刷掉70%大學(xué)生
熱參加長(zhǎng)沙Java培訓(xùn)跳槽去大廠,都有哪些面試要求?
熱千鋒長(zhǎng)沙前端培訓(xùn)分享之高級(jí)前端面試題整理
新千鋒長(zhǎng)沙前端培訓(xùn)分享之中級(jí)前端面試題整理
千鋒長(zhǎng)沙前端培訓(xùn)分享之初級(jí)前端面試題整理
千鋒長(zhǎng)沙前端培訓(xùn):Vue相關(guān)面試題
長(zhǎng)沙Java培訓(xùn):高并發(fā)編程JUC包面試題及答案
長(zhǎng)沙Java培訓(xùn):Java開(kāi)發(fā)實(shí)用的面試題及答案
長(zhǎng)沙Java培訓(xùn):2021年Java面試題分享
長(zhǎng)沙Java培訓(xùn):2021Java面試題分享
長(zhǎng)沙千鋒整理:軟件測(cè)試中頻率最高的網(wǎng)絡(luò)協(xié)議面試題,收好了!
長(zhǎng)沙IT培訓(xùn)學(xué)員整理:程序員面試10條潛規(guī)則
自學(xué)前端靠這份面試題和答案,也能拿高薪!
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點(diǎn)擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價(jià)格 -
優(yōu)惠活動(dòng)
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊(duì)
了解師資團(tuán)隊(duì) -
實(shí)戰(zhàn)項(xiàng)目
獲取項(xiàng)目源碼 -
開(kāi)班地區(qū)
查看來(lái)校路線