分布式快取的面試題3

2022-09-05 10:57:09 字數 2148 閱讀 2015

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 多路復用程式來監聽多個套接字,檔案事件處理器既實現...