Redis ZINCRYBY命令

Redis ZINCRYBY命令教程

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 值可以是整数值或双精度浮点数。

Redis ZINCRYBY命令详解

语法

192.168.98.70:6379> ZINCRBY KEY increment member

参数

参数 描述
KEY 要增加值的有序集合的键。
increment 要增加的值。
member 要增加的成员。

返回值

member 成员的新 score 值,以字符串形式表示。

时间复杂度

O(log(N))。

可用版本

>= 1.2.0

案例

KEY不存在

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存在

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 为负数,给元素 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 可以为浮点数,给元素 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命令总结

Redis 的 ZINCRYBY 命令用于为有序集 KEY 的成员 member 的 score 值加上增量 increment 。Redis ZINCRYBY 命令语法:

192.168.98.70:6379> ZINCRBY KEY increment member