跳转到内容

DECRBY

将 key 所储存的值减去给定的减量值(decrement)。

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在 64 位(bit)有符号数字表示之内。

Terminal window
DECRBY key decrement

参数说明

  • key: 要减少的键
  • decrement: 减量值(可以为负数,负数时表示增加)

DECRBY 命令是原子操作,可以用于实现计数器功能。它是一个针对字符串类型的操作,但要求字符串必须能够被解析为整数。

与 DECR 命令相比,DECRBY 允许指定具体的减量值,而不仅仅局限于 1。

在 redisun 中,DECRBY 命令通过 DecrByCommand 类和 Redisun 类中的 decrBy 方法实现。

Redisun redisun = Redisun.create(options -> {
options.setAddress("redis://127.0.0.1:6379");
});
// 减少键的值(减少10)
long result = redisun.decrBy("mycounter", 10);
System.out.println("Counter value: " + result);
// 异步版本
CompletableFuture<Long> future = redisun.asyncDecrBy("mycounter", 10);
future.thenAccept(value -> System.out.println("Async counter value: " + value));
// 增加键的值(减少-5,即增加5)
long result = redisun.decrBy("mycounter", -5);
System.out.println("Counter value: " + result);
  1. 如果 key 不存在,会自动创建并初始化为 0
  2. 如果 key 存在但不是数字字符串,会抛出异常
  3. 值的范围限制在 64 位有符号整数范围内
  4. 操作是原子性的,适用于并发场景
  5. decrement 参数可以为负数,此时实现的是增加操作