关于记步方案怎么实现
业务规划了一个新的产品,有一个功能记步是不知道怎么实现更好,和大家讨论一下。 现在规划的方案是,在客户端统计用户的走路的步数,每隔 5 秒上传一次,现在有一个需求是,需要每满 1800 步就给用户发放 50 积分。现在的实现方案大致如下,引入了redis来做数据的存储
$r = $redis->incrby('xxx', $steps);
if ($r >= 1800) {
$redis->decrBy('xxx', 1800);
}
但是这里有一个问题就是,两步操作之间很可能会存在并发问题,如果想解决这个问题可能就需要引入 lua
脚本,但是这样感觉维护起来又稍微有点麻烦,看看大家有没有更好的方案来处理?
推荐文章: