Java面試題(Redis)

179.redis 是什么?都有哪些使用場景棵帽?

Redis是一個開源的使用ANSI C語言編寫熄求、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型逗概、Key-Value數(shù)據(jù)庫弟晚,并提供多種語言的API。

Redis 使用場景:
  • 數(shù)據(jù)高并發(fā)的讀寫
  • 海量數(shù)據(jù)的讀寫
  • 對擴展性要求高的數(shù)據(jù)

180. redis 有哪些功能?

  • 數(shù)據(jù)緩存功能
  • 分布式鎖的功能
  • 支持數(shù)據(jù)持久化
  • 支持事務
  • 支持消息隊列

181. redis 和 memecache 有什么區(qū)別卿城?

  • memcached所有的值均是簡單的字符串淑履,redis作為其替代者,支持更為豐富的數(shù)據(jù)類型
  • redis的速度比memcached快很多
  • redis可以持久化其數(shù)據(jù)

182. redis 為什么是單線程的藻雪?

因為 cpu 不是 Redis 的瓶頸秘噪,Redis 的瓶頸最有可能是機器內(nèi)存或者網(wǎng)絡帶寬。既然單線程容易實現(xiàn)勉耀,而且 cpu 又不會成為瓶頸指煎,那就順理成章地采用單線程的方案了。

關于 Redis 的性能便斥,官方網(wǎng)站也有至壤,普通筆記本輕松處理每秒幾十萬的請求。

而且單線程并不代表就慢 nginx 和 nodejs 也都是高性能單線程的代表枢纠。

183. 什么是緩存穿透像街?怎么解決?

緩存穿透:指查詢一個一定不存在的數(shù)據(jù)晋渺,由于緩存是不命中時需要從數(shù)據(jù)庫查詢镰绎,查不到數(shù)據(jù)則不寫入緩存,這將導致這個不存在的數(shù)據(jù)每次請求都要到數(shù)據(jù)庫去查詢木西,造成緩存穿透畴栖。

解決方案:最簡單粗暴的方法如果一個查詢返回的數(shù)據(jù)為空(不管是數(shù)據(jù)不存在,還是系統(tǒng)故障)八千,我們就把這個空結果進行緩存吗讶,但它的過期時間會很短,最長不超過五分鐘恋捆。

184. redis 支持的數(shù)據(jù)類型有哪些照皆?

string、list沸停、hash膜毁、set、zset星立。

185. redis 支持的 java 客戶端都有哪些爽茴?

Redisson葬凳、Jedis绰垂、lettuce等等,官方推薦使用Redisson火焰。

186. jedis 和 redisson 有哪些區(qū)別劲装?

  • Jedis是Redis的Java實現(xiàn)的客戶端,其API提供了比較全面的Redis命令的支持。
  • Redisson實現(xiàn)了分布式和可擴展的Java數(shù)據(jù)結構占业,和Jedis相比绒怨,功能較為簡單,不支持字符串操作谦疾,不支持排序南蹂、事務、管道念恍、分區(qū)等Redis特性六剥。Redisson的宗旨是促進使用者對Redis的關注分離,從而讓使用者能夠將精力更集中地放在處理業(yè)務邏輯上峰伙。

187. 怎么保證緩存和數(shù)據(jù)庫數(shù)據(jù)的一致性疗疟?

合理設置緩存的過期時間。
新增瞳氓、更改策彤、刪除數(shù)據(jù)庫操作時同步更新 Redis,可以使用事物機制來保證數(shù)據(jù)的一致性匣摘。

188. redis 持久化有幾種方式店诗?

Redis 的持久化有兩種方式,或者說有兩種策略:

  • RDB(Redis Database):指定的時間間隔能對你的數(shù)據(jù)進行快照存儲音榜。
  • AOF(Append Only File):每一個收到的寫命令都通過write函數(shù)追加到文件中必搞。

189. redis 怎么實現(xiàn)分布式鎖?

Redis 分布式鎖其實就是在系統(tǒng)里面占一個“坑”囊咏,其他程序也要占“坑”的時候恕洲,占用成功了就可以繼續(xù)執(zhí)行,失敗了就只能放棄或稍后重試梅割。

占坑一般使用 setnx(set if not exists)指令霜第,只允許被一個程序占有,使用完調用 del 釋放鎖户辞。

190. redis 分布式鎖有什么缺陷泌类?

Redis 分布式鎖不能解決超時的問題,分布式鎖有一個超時時間底燎,程序的執(zhí)行如果超出了鎖的超時時間就會出現(xiàn)問題刃榨。

191. redis 如何做內(nèi)存優(yōu)化?

盡可能使用散列表(hashes)双仍,散列表(是說散列表里面存儲的數(shù)少)使用的內(nèi)存非常小枢希,所以你應該盡可能的將你的數(shù)據(jù)模型抽象到一個散列表里面。

比如你的web系統(tǒng)中有一個用戶對象朱沃,不要為這個用戶的名稱苞轿,姓氏茅诱,郵箱,密碼設置單獨的key,而是應該把這個用戶的所有信息存儲到一張散列表里面搬卒。

192. redis 淘汰策略有哪些瑟俭?

volatile-lru:從已設置過期時間的數(shù)據(jù)集(server. db[i]. expires)中挑選最近最少使用的數(shù)據(jù)淘汰。
volatile-ttl:從已設置過期時間的數(shù)據(jù)集(server. db[i]. expires)中挑選將要過期的數(shù)據(jù)淘汰契邀。
volatile-random:從已設置過期時間的數(shù)據(jù)集(server. db[i]. expires)中任意選擇數(shù)據(jù)淘汰摆寄。
allkeys-lru:從數(shù)據(jù)集(server. db[i]. dict)中挑選最近最少使用的數(shù)據(jù)淘汰。
allkeys-random:從數(shù)據(jù)集(server. db[i]. dict)中任意選擇數(shù)據(jù)淘汰坯门。
no-enviction(驅逐):禁止驅逐數(shù)據(jù)椭迎。

193. redis 常見的性能問題有哪些?該如何解決田盈?

主服務器寫內(nèi)存快照畜号,會阻塞主線程的工作,當快照比較大時對性能影響是非常大的允瞧,會間斷性暫停服務简软,所以主服務器最好不要寫內(nèi)存快照。
Redis 主從復制的性能問題述暂,為了主從復制的速度和連接的穩(wěn)定性痹升,主從庫最好在同一個局域網(wǎng)內(nèi)。

目錄:2020最新Java面試題及答案匯總(上)
目錄:2020最新Java面試題及答案匯總(下)

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畦韭,一起剝皮案震驚了整個濱河市疼蛾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艺配,老刑警劉巖察郁,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異转唉,居然都是意外死亡皮钠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門赠法,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麦轰,“玉大人,你說我怎么就攤上這事砖织】钋郑” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵侧纯,是天一觀的道長新锈。 經(jīng)常有香客問我,道長茂蚓,這世上最難降的妖魔是什么壕鹉? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任剃幌,我火速辦了婚禮聋涨,結果婚禮上晾浴,老公的妹妹穿的比我還像新娘。我一直安慰自己牍白,他們只是感情好脊凰,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茂腥,像睡著了一般狸涌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上最岗,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天帕胆,我揣著相機與錄音,去河邊找鬼般渡。 笑死懒豹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的驯用。 我是一名探鬼主播脸秽,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝴乔!你這毒婦竟也來了记餐?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤薇正,失蹤者是張志新(化名)和其女友劉穎片酝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挖腰,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡钠怯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了曙聂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晦炊。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宁脊,靈堂內(nèi)的尸體忽然破棺而出断国,到底是詐尸還是另有隱情,我是刑警寧澤榆苞,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布稳衬,位于F島的核電站,受9級特大地震影響坐漏,放射性物質發(fā)生泄漏薄疚。R本人自食惡果不足惜碧信,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望街夭。 院中可真熱鬧砰碴,春花似錦、人聲如沸板丽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埃碱。三九已至猖辫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砚殿,已是汗流浹背啃憎。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留似炎,地道東北人辛萍。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像名党,于是被迫代替她去往敵國和親叹阔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355