2011年2月24日木曜日

groovyとmemcached-java-clientでatomicな更新を行う

groovyとmemcached-java-clientでatomicな更新を行うには、以下のコードを実行します。

import com.danga.MemCached.*

// memcachedに接続
siop = SockIOPool.getInstance()
siop.setServers(["192.168.1.25:11211"] as String[])
siop.initialize()
mcc = new MemCachedClient()

// key-valueを設定
mcc.set("key1", "value1")

// getsで値を取得
mi = mcc.gets("key1")
println "cas unique value:" + mi?.getCasUnique()
println "value:" + mi?.getValue()
// 更新される
if( mcc.cas("key1", "value1b", mi?.getCasUnique()) ){
println "key1 is updated successfully."
}
// cas unique valueが変わったので更新されない
if( mcc.cas("key1", "value1c", mi?.getCasUnique()) ){
println "key1 is updated successfully."
}

println mcc.get("key1")


※java_memcached-release_2.5.2.jarをGROOVY_HOME/libにコピーしておく。

動作環境
JDK6 Update 23, groovy 1.7.6, Memcached-Java-Client 2.5.2

関連情報
groovyとjava-memcached-clientのまとめ

0 件のコメント:

コメントを投稿