Memcached遞增遞減資料


Memcached的incr 和 decr命令用於增加現有鍵的數值遞減。如果鍵未找到或如果關鍵的不是數位,則返回NOT_FOUND。那麼CLIENT_ERROR不能增加或返回遞減非數值錯誤。

Incr

語法

memcached的incr命令的基本語法如下所示:

incr key increment_value

範例

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

在上面的例子中,我們已經使用visitors為一個鍵,並設定10為初始值,之後為visitors增量5。

Decr

語法

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應用程式遞增遞減資料

要在memcached伺服器增加,減小資料,需要使用memcached的incr, decr方法。

範例

import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
   public static void main(String[] args) {
      //Connecting to Memcached server on localhost
      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());
      //Get value from cache
      System.out.println("Get from Cache:"+mcc.get("count"));
      // now increase the stored value
      System.out.println("Increment value:"+mcc.incr("count", 2));
      // now decrease the stored value
      System.out.println("Decrement value:"+mcc.decr("count", 1));
      // now get the final stored value
      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