面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景

網際網路搬運工發表於2019-09-04

分析

是不是覺得這個問題很基礎,其實我也這麼覺得。然而根據面試經驗發現,至少百分八十的人答不上這個問題。建議,在專案中用到後,再類比記憶,體會更深,不要硬記。基本上,一個合格的程式設計師,五種型別都會用到。

回答

一共五種

(一)String

面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景

這個其實沒啥好說的,最常規的set/get操作,value可以是String也可以是數字。一般做 一些複雜的計數功能的快取。

(二)list

面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景

使用List的資料結構,可以 做簡單的訊息佇列的功能。另外還有一個就是,可以利用lrange命令, 做基於redis的分頁功能,效能極佳,使用者體驗好。

(三)hash

面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景

這裡value存放的是結構化的物件,比較方便的就是操作其中的某個欄位。博主在做 單點登入的時候,就是用這種資料結構儲存使用者資訊,以cookieId作為key,設定30分鐘為快取過期時間,能很好的模擬出類似session的效果。

(四)set

面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景

因為set堆放的是一堆不重複值的集合。所以可以做 全域性去重的功能。為什麼不用JVM自帶的Set進行去重?因為我們的系統一般都是叢集部署,使用JVM自帶的Set,比較麻煩,難道為了一個做一個全域性去重,再起一個公共服務,太麻煩了。
另外,就是利用交集、並集、差集等操作,可以 計算共同喜好,全部的喜好,自己獨有的喜好等功能

(五)sorted set

面試官:Redis有幾種資料型別,詳細說一下每種資料型別的使用場景

sorted set多了一個權重引數score,集合中的元素能夠按score進行排列。可以做 排行榜應用,取TOP N操作


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946007/viewspace-2655964/,如需轉載,請註明出處,否則將追究法律責任。

相關文章