Search:

Search all manuals
Search this manual
Manual
Couchbaseクライアントライブラリ: Java 1.0
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
7 更新操作
Chapter Sections
Chapters

7.5. デクリメント操作

デクリメントメソッドは指定のキーの値が整数値にパースできる場合、値を減少させます。これらの操作はデータベースの単純な整数値を取得、更新、リセットする操作の必要性を排除するために、プロトコルレベルで提供されています。全てのJavaクライアントライブラリメソッドはデータベース内に保存された値を減少するための明示的なオフセット値の利用をサポートしています。

API Callclient.decr(key, offset)
Asynchronousno
Description Decrement the value of an existing numeric key. The Couchbase Server stores numbers as unsigned values. Therefore the lowest you can decrement is to zero.
Returnslong ( Numeric value )
Arguments 
String key Document ID used to identify the value
int offset Integer offset value to increment/decrement (default 1)

decr() メソッドの一つ目の形式はサーバ側の整数を減少する際に利用する、キーとオフセット値を受け取ります。例えば、サーバ側の整数 dlcounter を 5 デクリメントする場合次のようになります:

client.decr("dlcounter",5);

指定したキーの更新後の値が戻り値となります。

API Callclient.decr(key, offset, default)
Asynchronousno
Description Decrement the value of an existing numeric key. The Couchbase Server stores numbers as unsigned values. Therefore the lowest you can decrement is to zero.
Returnslong ( Numeric value )
Arguments 
String key Document ID used to identify the value
int offset Integer offset value to increment/decrement (default 1)
int default Default value to increment/decrement if key does not exist

decr() メソッドの二つ目の形式では、キーが存在する場合、キーの値を指定したオフセット値でデクリメントし、存在しない場合は指定したデフォルト値をセットします。これはカウンタ値を記録しているが、キーが存在するか分からない場合に利用できます。

例えば、キー dlcounter が存在しない場合、次のコードは1000を返します:

long newcount =
    client.decr("dlcount",1,1000);

System.out.printf("Updated counter is %d\n",newcount);

後続の同一の呼び出しでは、dlcount が既に存在しているので、999が返ります。

API Callclient.decr(key, offset, default, expiry)
Asynchronousno
Description Decrement the value of an existing numeric key. The Couchbase Server stores numbers as unsigned values. Therefore the lowest you can decrement is to zero.
Returnslong ( Numeric value )
Arguments 
String key Document ID used to identify the value
int offset Integer offset value to increment/decrement (default 1)
int default Default value to increment/decrement if key does not exist
int expiry Expiry time for key. Values larger than 30*24*60*60 seconds (30 days) are interpreted as absolute times (from the epoch).

decr() メソッドの三つ目の形式では、デフォルト値に加えて保存する値の有効期限を指定できます。例えば、カウンタをデクリメントする際に、値が存在しない場合のデフォルト値を1000とし、1時間の有効期限を付けます(3600秒):

long newcount =
    client.decr("dlcount",1,1000,3600);

有効期限付きの値については次を参照してください。「有効期限」

API Callclient.asyncDecr(key, offset)
Asynchronousyes
Description Decrement the value of an existing numeric key. The Couchbase Server stores numbers as unsigned values. Therefore the lowest you can decrement is to zero.
Returnslong ( Numeric value )
Arguments 
String key Document ID used to identify the value
int offset Integer offset value to increment/decrement (default 1)

非同期の asyncDecr() メソッドでは応答を待たずに値のデクリメントが可能です。これは更新後の値を知る必要がなく、単にデクリメントを実行して処理を継続したい場合に便利です。

例えば、非同期に指定のキーをデクリメントします:

OperationFuture<Long> decrOp =
    client.asyncDecr("samplekey",1,1000,24000);