MemcachedをScalaで使うならこれがいいということで使ってみた。
詳しくはshadeを参照
SBTでresolverとDependencyを書いて
resolvers += "Spy" at "http://files.couchbase.com/maven2/"
dependencies += "com.bionicspirit" %% "shade" % "1.6.0"
あとはget, set, add, deleteを使用する
Non-blockingの場合
import concurrent.duration._
import concurrent.Future
import shade.memcached._
import scala.concurrent.ExecutionContext.Implicits.{global => ec}
val memcached = Memcached(Configuration("127.0.0.1:11211"), ec)
val op: Future[Boolean] = memcached.set("username", "Alex", 1.minute)
Blockingの場合
import concurrent.duration._
import concurrent.Future
import shade.memcached._
import scala.concurrent.ExecutionContext.Implicits.{global => ec}
val memcached = Memcached(Configuration("127.0.0.1:11211"), ec)
memcached.awaitGet("username") match {
case Some(username) => doSomething
case None =>
memcached.awaitSet("username", "Alex", 1.minute)
}