Memcached incr/decr 命令

Memcached incr和decr命令用于增加或减少现有键的数值。如果未找到密钥,则返回NOT_FOUND。如果键不是数字,则返回CLIENT_ERROR cannot increment or decrement non-numeric value。否则,返回ERROR。

incr 递增 命令

语法

Memcached incr 命令的基本语法如下所示

incr key increment_value

示例

在这个例子中,我们使用 visitors 作为 key 并设置值为 10,然后我们将 visitors 的值增加 5。

set visitors 0 900 2
10
STORED

get visitors
VALUE visitors 0 2
10
END

incr visitors 5
15

get visitors
VALUE visitors 0 2
15
END

decr 递减 命令

语法

Memcached decr 命令的基本语法如下所示

decr key decrement_value

示例

我们使用和上面一样的场景作为示例,这里我们将 visitors 的值减少 5

set visitors 0 900 2
10
STORED

get visitors
VALUE visitors 0 2
10
END

decr visitors 5
5

get visitors
VALUE visitors 0 1
5
END

使用 Java 应用程序增加/减少

要增加或减少 Memcached 服务器中的数据,需要分别使用 Memcached incr 或 decr方法。

import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
   public static void main(String[] args) {
      
      // 连接 Memcached 服务
      MemcachedClient mcc = new MemcachedClient(new
      InetSocketAddress("127.0.0.1", 11211));
      System.out.println("Connection to server sucessfully");
      System.out.println("set status:"+mcc.set("count", 900, "5").isDone());
      
      // 从缓存中获取数据
      System.out.println("Get from Cache:"+mcc.get("count"));
      
      // 对存储的值进行增加
      System.out.println("Increment value:"+mcc.incr("count", 2));
      
      // 对存储的值进行减少
      System.out.println("Decrement value:"+mcc.decr("count", 1));
      
      // 获取最终的值
      System.out.println("Get from Cache:"+mcc.get("count"));
   }
}

在编译和执行程序时,输出以下结果:

Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6

查看笔记

扫码一下
查看教程更方便