案例場景
某大型綜合類電商平臺擁有龐大的用戶群體,且每逢節(jié)假日期間會迎來訂單量的爆發(fā)式增長。訂單處理系統(tǒng)需要快速響應(yīng)大量的并發(fā)請求,并在短時間內(nèi)完成訂單創(chuàng)建、庫存扣減、支付驗(yàn)證等操作。由于訂單數(shù)據(jù)量大且操作頻繁,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫難以滿足性能要求。公司擬引入Redis作為訂單處理系統(tǒng)的一部分,利用其高性能的key-value存儲和內(nèi)存操作優(yōu)勢,將訂單號、用戶信息等關(guān)鍵數(shù)據(jù)緩存到Redis 中。并通過 Redis 的自身機(jī)制,將訂單數(shù)據(jù)分布到多個Redis 節(jié)點(diǎn),實(shí)現(xiàn)負(fù)載均衡和數(shù)據(jù)冗余。同時,利用 Redis 的原子操作和事務(wù)特性,確保訂單處理過程中的數(shù)據(jù)一致性和完整性。
問題內(nèi)容:
[問題1](8分)
Redis 數(shù)據(jù)分片方案有多種,請根據(jù)分片方案的特點(diǎn)填寫以下表格內(nèi)容。

在系統(tǒng)設(shè)計方案討論時,王工提出除了以上兩種方案,還有一種分片方案,此方案不但能讓 redis 各結(jié)點(diǎn)負(fù)載相當(dāng),且從長久來說,更利于擴(kuò)展Redis結(jié)點(diǎn),請指出王工的分片方
案,并說明該方案為何更利于擴(kuò)展結(jié)點(diǎn)。
[問題2] (6分)
Redis 支持多種數(shù)據(jù)類型,請為以下應(yīng)用場景選擇最合適的Redis數(shù)據(jù)類型。
(1)網(wǎng)站用戶畫像標(biāo)簽。
(2)多用戶同時下訂單,扣減庫存時的分布式鎖。
(3) 商品銷售周排行榜。
[問題3]
(6分)
Redis 緩存區(qū)容量有限,當(dāng)緩存空間不足時,則需要淘汰緩存區(qū)中的部分?jǐn)?shù)據(jù)。
volatile-lru 和 allkeys-lru 兩種算法有共性,即均遵循(1)原理,優(yōu)先淘汰(2)的數(shù)
據(jù)。同時,他們也有差異,差異在于volatile淘汰數(shù)據(jù)時的范圍限定為僅針對(3)。
[問題4(5分)
布隆過濾器可以解決Redis 應(yīng)用中的什么問題?用這種方法,會有什么缺點(diǎn)?
試題答案:
[問題1] (8分,(a)-(d)每空1分,后面每問2分)
(a) 取值范圍 (b) 不均勻(c) 哈希值(d) 均勻
王工的分片方案為:一致性哈希。
該方案通過哈希環(huán)機(jī)制,增設(shè)了很多虛擬結(jié)點(diǎn),再映射到物理結(jié)點(diǎn),所以擴(kuò)展結(jié)點(diǎn)時,不
必像哈希分片那樣對所有數(shù)據(jù)重新分配結(jié)點(diǎn)。只需要將部分?jǐn)?shù)據(jù)做重新調(diào)整。
[問題2] (6分,每空2分)
(1) Set (2) String (3) Zset
[問題3] (6分,每空2分)
(1) 局部性原理(2)最近未被訪問(3)設(shè)置了過期時間的數(shù)據(jù)
[問題4] (5分,第1問2分,第2問每條1分)
布隆過濾器可用于解決緩存穿透的問題。
其缺點(diǎn)包括:
1、有一定的誤判率,即存在假陽性,不能準(zhǔn)確判斷元素是否在集合中。
2、一般情況下不能從布隆過濾器中刪除元素
3、不能獲取元素本身
題庫真題:每日一練 | 歷年真題 | 章節(jié)練習(xí) |高頻考點(diǎn)
精品課程:系統(tǒng)架構(gòu)設(shè)計師報考指南 | 系統(tǒng)架構(gòu)設(shè)計師備考攻略
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題
專注在線職業(yè)教育25年