简单
技术面试0 次浏览

美团的商家系统需要存储大量的商品信息,包括商品名称、价格、库存等。请设计一个简单的 Redis 数据结构来存储这些信息,并说明如何实现商品库存的原子性扣减。

美团后端工程师
Redis数据结构设计商家系统

答题要点

可采用 STAR 法则回答,即情景(Situation)、任务(Task)、行动(Action)、结果(Result)。关键要点:一是数据结构选择,使用 Redis 的哈希(Hash)结构存储商品信息,每个商品作为一个哈希表,字段为商品属性;二是原子性扣减实现,使用 Redis 的 Lua 脚本,将库存检查和扣减操作封装在一个脚本中,保证操作的原子性;三是异常处理,在脚本中添加库存不足的判断,若不足则返回错误信息;四是性能考虑,合理设置 Redis 的过期时间,避免内存占用过大。示例思路:在美团商家系统的情景下,任务是设计存储商品信息的数据结构并实现库存原子性扣减。我们选择哈希结构存储,用 Lua 脚本实现原子操作,添加库存不足判断,同时设置合理过期时间,以达到高效存储和操作的结果。