Memcached 增量减量数据

  • Telnet增量减量数据

    Memcached 的 incrdecr命令用于递增或递减现有键的数字值。如果找不到该键,则返回NOT_FOUND。如果键不是数字键,则返回CLIENT_ERROR不能递增或递减非数值。否则,将返回ERROR。
    Memcached incr命令的基本语法如下所示-
    
    incr key increment_value
    
    在此示例中,我们将访问者用作键并将其初始设置为10,然后将访问者增加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
    
    Memcached decr命令的基本语法如下所示
    
    decr key decrement_value
    
    
    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应用程序的incr / decr

    要增加或减少Memcached服务器中的数据,您需要分别使用Memcached incr或decr方法。
    
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import net.spy.memcached.MemcachedClient;
    
    public class MemcachedJava {
       public static void main(String[] args) {
    
          // Connecting to Memcached server on localhost
          MemcachedClient mcc = null;
          try {
             mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
          } catch (IOException e) {
             // TODO 自动生成的 catch 块
             e.printStackTrace();
          }
          System.out.println("Connection to server sucessfully");
    
          // 设置数据库 第一个参数key 第二个参数过期时间,第三个参数value
          System.out.println("set status:" + mcc.set("jc2182", 900, "5").getStatus());
          System.out.println("Get from Cache:" + mcc.get("jc2182"));
          // 加2
          mcc.incr("jc2182", 2);
          System.out.println("Current Value:" + mcc.get("jc2182"));
          // 减4
          mcc.decr("jc2182", 4);
          System.out.println("Current Value:" + mcc.get("jc2182"));
       }
    }
    
    在编译和执行程序时,您将看到以下输出-
    
    Connection to server sucessfully 
    set status:{OperationStatus success=true:  STORED}
    Get from Cache:5
    Current Value:7
    Current Value:3