Redis 的 ZINCRYBY 命令用于为 有序集 KEY 的成员 member 的 score 值加上增量 increment 。
可以通过传递一个负数值 increment ,让 score 减去相应的值,比如 ZINCRBY KEY -5 member ,就是让 member 的 score 值减去 5 。
当 KEY 不存在,或 member 不是 KEY 的成员时, ZINCRBY KEY increment member 等同于 ZADD KEY increment member 。当 KEY 不是有序集类型时,返回一个错误。
score 值可以是整数值或双精度浮点数。
192.168.98.70:6379> ZINCRBY KEY increment member
参数 | 描述 |
---|---|
KEY | 要增加值的有序集合的键。 |
increment | 要增加的值。 |
member | 要增加的成员。 |
member 成员的新 score 值,以字符串形式表示。
O(log(N))。
>= 1.2.0
KEY 不存在,相当于 score 值为 0
192.168.98.70:6379> EXISTS haicoder (integer) 0 192.168.98.70:6379> ZINCRBY haicoder 100 Redis "100" 192.168.98.70:6379> ZRANGE haicoder 0 -1 WITHSCORES 1) "Redis" 2) "100" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 EXISTS 命令,判断键 haicoder 不存在。接着,使用 ZINCRBY 命令,给不存在的键 haicoder 的元素 Redis 的分数加上 100,因为键不存在,所以分数当做 0 处理。
最后,我们使用 ZRANGE 命令,获取键为 haicoder 的集合中的元素以及分数,返回元素 Redis 其分数为刚加的 100。
KEY 存在,给元素 score 值加对应的分数
192.168.98.70:6379> ZADD haicoder 100 Redis (integer) 1 192.168.98.70:6379> ZINCRBY haicoder 50 Redis "150" 192.168.98.70:6379> ZRANGE haicoder 0 -1 WITHSCORES 1) "Redis" 2) "150" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 ZADD 命令,给键 haicoder 添加元素 Redis,并设置其分数为 100。接着,我们使用 ZINCRBY 命令,给键 haicoder 的元素 Redis 的分数加上 50。
最后,我们使用 ZRANGE 命令,获取键为 haicoder 的集合中的元素以及分数,返回元素 Redis 其分数为 150。
SCORE 为负数,给元素 score 值减去对应的分数
192.168.98.70:6379> ZADD haicoder 100 Redis (integer) 1 192.168.98.70:6379> ZINCRBY haicoder -50 Redis "50" 192.168.98.70:6379> ZRANGE haicoder 0 -1 WITHSCORES 1) "Redis" 2) "50" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 ZADD 命令,给键 haicoder 添加元素 Redis,并设置其分数为 100。接着,我们使用 ZINCRBY 命令,给键 haicoder 的元素 Redis 的分数减去 50。
最后,我们使用 ZRANGE 命令,获取键为 haicoder 的集合中的元素以及分数,返回元素 Redis 其分数为 50。
SCORE 可以为浮点数,给元素 score 值增加或减去对应的分数
192.168.98.70:6379> ZADD haicoder 100 Redis (integer) 1 192.168.98.70:6379> ZINCRBY haicoder 11.23 Redis "111.23" 192.168.98.70:6379> ZRANGE haicoder 0 -1 WITHSCORES 1) "Redis" 2) "111.23" 192.168.98.70:6379> DEL haicoder (integer) 1
我们首先,使用 ZADD 命令,给键 haicoder 添加元素 Redis,并设置其分数为 100。接着,我们使用 ZINCRBY 命令,给键 haicoder 的元素 Redis 的分数加上浮点值 11.23。
最后,我们使用 ZRANGE 命令,获取键为 haicoder 的集合中的元素以及分数,返回元素 Redis 其分数为 111.23。
Redis 的 ZINCRYBY 命令用于为有序集 KEY 的成员 member 的 score 值加上增量 increment 。Redis ZINCRYBY 命令语法:
192.168.98.70:6379> ZINCRBY KEY increment member