1、面試題
redis都有哪些資料型別?分別在哪些場景下使用比較合適?
2、面試官心裡分析
除非是我感覺看你簡歷,就是工作3年以內的比較初級的乙個同學,可能對技術沒有很深入的研究過,我才會問這類問題,在寶貴的面試時間裡,我實在是不想多問
其實問這個問題呢。。。主要就倆原因
第一,看看你到底有沒有全面的了解redis有哪些功能,一般怎麼來用,啥場景用什麼,就怕你別就會最簡單的
kv操作
第二,看看你在實際專案裡都怎麼玩兒過redis
要是你回答的不好,沒說出幾種資料型別,也沒說什麼場景,你完了,面試官對你印象肯定不好,覺得你平時就是做個簡單的set和
get。
3、面試題剖析
(1)string
這是最基本的型別了,沒啥可說的,就是普通的set和
get,做簡單的
kv快取
(2)hash
這個是類似map的一種結構,這個一般就是可以將結構化的資料,比如乙個物件(前提是這個物件沒巢狀其他的物件)給快取在
redis
裡,然後每次讀寫快取的時候,可以就操作
hash
裡的某個字段。
key=150
value={
「id」: 150,
「name」: 「zhangsan」,
「age」: 20
hash類的資料結構,主要是用來存放一些物件,把一些簡單的物件給快取起來,後續操作的時候,你可以直接僅僅修改這個物件中的某個欄位的值
value={
「id」: 150,
「name」: 「zhangsan」,
「age」: 21
(3)list
有序列表,這個是可以玩兒出很多花樣的
微博,某個大v的粉絲,就可以以
list
的格式放在
redis
裡去快取
key=某大
vvalue=[zhangsan, lisi, wangwu]
比如可以通過lrange命令,就是從某個元素開始讀取多少個元素,可以基於
list
實現分頁查詢,這個很棒的乙個功能,基於
redis
實現簡單的高效能分頁,可以做類似微博那種下拉不斷分頁的東西,效能高,就一頁一頁走
比如可以搞個簡單的訊息佇列,從list頭懟進去,從
list
尾巴那裡弄出來
(4)set
無序集合,自動去重
直接基於set將系統裡需要去重的資料扔進去,自動就給去重了,如果你需要對一些資料進行快速的全域性去重,你當然也可以基於
jvm記憶體裡的
hashset
進行去重,但是如果你的某個系統部署在多台機器上呢?
得基於redis進行全域性的
set去重
可以基於set玩兒交集、並集、差集的操作,比如交集吧,可以把兩個人的粉絲列表整乙個交集,看看倆人的共同好友是誰?對吧
把兩個大v的粉絲都放在兩個
set中,對兩個
set做交集
(5)sorted set
排序的set,去重但是可以排序,寫進去的時候給乙個分數,自動根據分數排序,這個可以玩兒很多的花樣,最大的特點是有個分數可以自定義排序規則
比如說你要是想根據時間對資料排序,那麼可以寫入進去的時候用某個時間作為分數,人家自動給你按照時間排序了
排行榜:將每個使用者以及其對應的什麼分數寫入進去,zadd board score username,接著
zrevrange board 0 99
,就可以獲取排名前
100的使用者;
zrank board username
,可以看到使用者在排行榜裡的排名
zadd board 85 zhangsan
zadd board 72 wangwu
zadd board 96 lisi
zadd board 62 zhaoliu
96 lisi
85 zhangsan
72 wangwu
62 zhaoliu
zrevrange board 0 3
獲取排名前3的使用者
96 lisi
85 zhangsan
72 wangwu
zrank board zhaoliu
分布式快取的面試題8
1 面試題 了解什麼是redis的雪崩和穿透?redis崩潰之後會怎麼樣?系統該如何應對這種情況?如何處理redis的穿透?2 面試官心裡分析 其實這是問到快取必問的,因為快取雪崩和穿透,那是快取最大的兩個問題,要麼不出現,一旦出現就是致命性的問題。所以面試官一定會問你。3 面試題剖析 快取雪崩發生...
分布式快取的面試題11
1 面試題 生產環境中的redis是怎麼部署的?2 面試官心裡分析 看看你了解不了解你們公司的redis生產集群的部署架構,如果你不了解,那麼確實你就很失職了,你的 redis 是主從架構?集群架構?用了哪種集群方案?有沒有做高可用保證?有沒有開啟持久化機制確保可以進行資料恢復?線上 redis 給...
分布式 分布式場景下面試題
redis相比memcached有哪些優勢 執行緒模型 redis 基於 reactor 模式開發了自己的網路事件處理器 這個處理器被稱為檔案事件處理器 file event handler 雖然檔案事件處理器以單執行緒方式執行,但通過使用 i o 多路復用程式來監聽多個套接字,檔案事件處理器既實現...