负数:
redis.hincrby(User:${targetUser.id},“followerCount”,-1)

我希望它在0处停止

最佳答案

HINCRBY操作在增量操作后返回新值。

redis> HSET myhash field 5
(integer) 1
redis> HINCRBY myhash field 1
(integer) 6
redis> HINCRBY myhash field -1
(integer) 5

如果您的HINCRBY操作返回-1,则意味着该用户的followerCount为0,因此不应减少。
因此,您可以将HSET设为0,以将其设为零。
更好的方法是使用redis transaction,它将:
  • 首先使用HGET,
  • 检查该值
  • 如果它大于零,则以-1增量
  • 进行HINCRBY
  • 如果为零,则不执行任何操作。
  • 关于amazon-web-services - Redis HINCRBY哈希字段-1计数器,仅递减至0或非负值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36540547/

    10-11 06:25