ZINCRBY:对成员的分值执行自增或自减操作
通过使用 ZINCRBY 命令,用户可以对有序集合中指定成员的分值执行自增操作,为其加上指定的增量:
ZINCRBY sorted_set increment member
ZINCRBY 命令在执行完自增操作之后,将返回给定成员当前的分值。

举个例子,对于图6-10所示的有序集合来说,我们可以使用以下命令,对它的成员分值执行自增操作:
redis> ZINCRBY salary 1000 "tom" -- 将成员"tom"的分值加上1000
"3000" -- 成员"tom"现在的分值为3000
redis> ZINCRBY salary 1500 "peter" -- 将成员"peter"的分值加上1500
"5000" -- 成员"peter"现在的分值为5000
redis> ZINCRBY salary 3000 "jack" -- 将成员"jack"的分值加上3000
"7000" -- 成员"jack"现在的分值为7000
图6-11展示了 salary 有序集合在执行以上几个 ZINCRBY 命令之后的样子。

执行自减操作
因为 Redis 只提供了对分值执行自增操作的 ZINCRBY 命令,但并没有提供相应的对分值执行自减操作的命令,所以如果我们需要减少一个成员的分值,那么可以将一个负数增量传递给 ZINCRBY 命令,从而达到对分值执行自减操作的目的。
比如,通过执行以下命令,我们可以将成员 "peter" 的分值从 5000 修改为 2000:
redis> ZINCRBY salary -3000 "peter"
"2000"
图6-12 展示了在命令执行之前以及之后,salary 有序集合的变化过程。

处理不存在的键或者不存在的成员
如果用户在执行 ZINCRBY
命令时,给定成员并不存在于有序集合中,或者给定的有序集合并不存在,那么 ZINCRBY 命令将直接把给定的成员添加到有序集合中,并把给定的增量设置为该成员的分值,效果相当于执行 ZADD 命令。
举个例子,当我们对不存在 "lily" 成员的 salary 有序集合执行以下命令时:
redis> ZINCRBY salary 1500 "lily"
"1500"
ZINCRBY 命令将把 "lily" 成员添加到 salary 有序集合中,并把给定的增量 1500 设置为 "lily" 成员的分值,效果相当于执行 ZADD salary 1500"lily"。
如果我们对不存在的有序集合 blog-timeline 执行以下命令:
redis> ZINCRBY blog-timeline 1447063985 "blog_id::10086"
"1447063985"
那么 ZINCRBY 命令将创建出空白的 blog-timeline 有序集合,并把分值为 1447063985 的成员 "blog_id::10086" 添加到这个有序集合中,效果相当于执行命令 ZADD blog-timeline 1447063985 "blog_id::10086"。