面试题答案
一键面试内存淘汰策略在电商商品详情页缓存场景的应用
- 应用方式:在电商系统中,商品详情页数据使用Redis缓存时,可采用
volatile - lru
(最近最少使用)内存淘汰策略。当Redis内存达到设定的上限时,该策略会优先淘汰设置了过期时间且最近最少使用的键值对。对于商品详情页缓存,一些不常被访问的商品详情数据(设置了过期时间)会在内存紧张时被淘汰,为新的热门商品详情数据腾出空间。 - 优势:
- 精准淘汰不常用数据:避免缓存中留存大量长时间未被访问的商品详情数据,保证缓存空间用于存储热门商品信息,提高缓存命中率。例如对于一些小众、销量低的商品详情数据,若长时间未被访问,在内存不足时可及时被淘汰。
- 适应动态变化:电商场景下商品热度随时可能变化,
volatile - lru
策略能够动态调整缓存内容,及时将新热门商品数据缓存进来,而淘汰不再热门的商品数据。
数据分片策略在电商商品详情页缓存场景的应用
- 应用方式:采用一致性哈希算法进行数据分片。将商品ID通过哈希函数映射到一个固定的哈希环上,Redis节点也分布在这个哈希环上。当要缓存或读取商品详情数据时,计算商品ID的哈希值,在哈希环上顺时针找到最近的Redis节点,将该商品详情数据存储到或从该节点读取。例如,商品A的ID经过哈希计算后对应哈希环上的位置,该位置顺时针最近的是Redis节点1,则商品A的详情数据就存储在Redis节点1。
- 优势:
- 负载均衡:均匀地将商品详情数据分布在多个Redis节点上,避免单个节点负载过高。不同热门程度的商品能较均匀地分布在各个节点,提高整体缓存系统的处理能力。
- 扩展性强:当需要增加或减少Redis节点时,一致性哈希算法能保证只有少量商品数据需要重新分布,而不是全部数据重新分配。比如新增一个Redis节点时,仅与该节点相邻区域的商品数据需要迁移,极大降低了对系统的影响,提升系统的可扩展性。