DECRBY
将 key 所储存的值减去给定的减量值(decrement)。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
Redis 原生命令语法
Section titled “Redis 原生命令语法”DECRBY key decrement参数说明
- key: 要减少的键
- decrement: 减量值(可以为负数,负数时表示增加)
DECRBY 命令是原子操作,可以用于实现计数器功能。它是一个针对字符串类型的操作,但要求字符串必须能够被解析为整数。
与 DECR 命令相比,DECRBY 允许指定具体的减量值,而不仅仅局限于 1。
Redisun 使用方式
Section titled “Redisun 使用方式”在 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));使用负数实现增加操作
Section titled “使用负数实现增加操作”// 增加键的值(减少-5,即增加5)long result = redisun.decrBy("mycounter", -5);System.out.println("Counter value: " + result);- 如果 key 不存在,会自动创建并初始化为 0
- 如果 key 存在但不是数字字符串,会抛出异常
- 值的范围限制在 64 位有符号整数范围内
- 操作是原子性的,适用于并发场景
- decrement 参数可以为负数,此时实现的是增加操作