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

在系統設計方案討論時,王工提出除了以上兩種方案,還有一種分片方案,此方案不但能讓 redis 各結點負載相當,且從長久來說,更利于擴展Redis結點,請指出王工的分片方案,并說明該方案為何更利于擴展結點。
[問題2] (6分)
Redis 支持多種數據類型,請為以下應用場景選擇最合適的Redis數據類型。
(1)網站用戶畫像標簽。
(2)多用戶同時下訂單,扣減庫存時的分布式鎖。
(3)商品銷售周排行榜。
[問題3](6分)
Redis 緩存區容量有限,當緩存空間不足時,則需要淘汰緩存區中的部分數據。
volatile-lru 和 allkeys-lru 兩種算法有共性,即均遵循(1)原理,優先淘汰(2)的數據。同時,他們也有差異,差異在于volatile淘汰數據時的范圍限定為僅針對(3)。
[問題4](5分)
布隆過濾器可以解決Redis應用中的什么問題?用這種方法,會有什么缺點?
試題答案:
[問題1] (8分,(a)-(d)每空1分,后面每問2分)
(a) 取值范圍(b)不均勻 (c) 哈希值(d) 均勻
王工的分片方案為:一致性哈希。
該方案通過哈希環機制,增設了很多虛擬結點,再映射到物理結點,所以擴展結點時,不必像哈希分片那樣對所有數據重新分配結點。只需要將部分數據做重新調整。
[問題 2] (6分,每空2分)
(1) Set (2) String (3) Zset
[問題 3] (6分,每空2分)
(1) 局部性原理(2)最近未被訪問(3)設置了過期時間的數據
[問題4] (5分,第1問2分,第2問每條1分)
布隆過濾器可用于解決緩存穿透的問題。
其缺點包括:
1、有一定的誤判率,即存在假陽性,不能準確判斷元素是否在集合中。
2、一般情況下不能從布隆過濾器中刪除元素
3、不能獲取元素本身
軟考備考資料免費領取
去領取
專注在線職業教育24年