在一个停车系统中,车位状态存在高配实时更新的业务需求。
本文基于redis来解决以下具体业务问题:
1 统计一个车场下的占用和未占用数量。
2 统计所有车位的占用和未占用数据。
3 更新车位状态。
分析:
1 redis缓存能很方便更新单个车位状态,从而能减轻频繁对数据库操作。
2 通过对redis key的设计能很快查询到一个车场下的所有车位具体值。但是对车位状态统计只能对返回集合进行遍历统计。
3 整个系统的车位状态统计也需要遍历。
综合以上原因,实时显示统计结果不符合实际需求,那就需要对车位统计做出单独缓存。
车位状态key设计, 解决单个车位实时状态:
key -> space:status:garage:001:space:00101 value-> 京A12345
key -> space:status:garage:001:space:00102 value-> 粤B67891
key -> space:status:garage:002:space:00201 value-> 0
车场下所有车位计数缓存,解决对当前车场车位状态统计:
key-> garage:001:space:number value->32
key-> garage:001:space:occupy:number value->20
当前系统下车位状态统计:
key-> system:space:number value->1022
key-> system:space:occupy:number value->25