面试题答案
一键面试选择的数据结构
可以选择Redis的Hash数据结构来存储每日商品销售总额的预计算结果。
原因
- 灵活性:Hash结构可以方便地存储和管理多个键值对,每个商品作为一个字段(field),其对应的销售总额作为值(value)。这样可以很容易地对单个商品的销售数据进行操作,例如更新、查询。
- 空间效率:相比于为每个商品单独创建一个键值对(如使用String结构),Hash结构在存储多个相关数据时更加紧凑,占用更少的内存空间。
操作方法
- 设置每日销售总额:
- 使用
HSET
命令,例如在Python中使用redis - py
库:
- 使用
import redis
r = redis.Redis(host='localhost', port=6379, db = 0)
# 假设日期为2024 - 01 - 01,商品ID为1,销售总额为100.0
r.hset('daily_sales:2024 - 01 - 01', 'product_1', 100.0)
- 获取单个商品的销售总额:
- 使用
HGET
命令,例如在Python中:
- 使用
total = r.hget('daily_sales:2024 - 01 - 01', 'product_1')
print(total)
- 获取所有商品的销售总额:
- 使用
HGETALL
命令,例如在Python中:
- 使用
all_sales = r.hgetall('daily_sales:2024 - 01 - 01')
print(all_sales)
- 更新单个商品的销售总额:
- 同样使用
HSET
命令,如果商品字段已存在,会更新其对应的值。例如:
- 同样使用
r.hset('daily_sales:2024 - 01 - 01', 'product_1', 150.0)