因为在项目中须要使用有时效性的缓存,为图方便就使用了memcached,memcached有个特性就是能够设置缓存数据的时效,这个对于存放验证码等数据很是方便。固然redis也能够,根据项目需求来选择吧! linux
首先在build.sbt中增长 redis
"com.googlecode.xmemcached" % "xmemcached" % "1.4.2"这里使用的memcached客户端是
xmemcached
相关文档见: http://code.google.com/p/xmemcached/w/list windows
下面是简单封装MemcachedHelper 缓存
package code.lib import net.rubyeye.xmemcached.MemcachedClient import net.rubyeye.xmemcached.XMemcachedClientBuilder import net.rubyeye.xmemcached.command.BinaryCommandFactory import net.rubyeye.xmemcached.utils.AddrUtil object MemcachedHelper extends App { lazy val client = initMemcachedClient() private def initMemcachedClient(servers: String = "localhost:11211") = { val builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(servers)) //builder.setConnectionPoolSize(5) builder.setCommandFactory(new BinaryCommandFactory()) builder.build() } private def checkKey(key: String) { require(!key.isEmpty(), "key不能为空") } def set(key: String, value: Any, exp: Int = 0): Boolean = { checkKey(key) client.set(key, exp, value) } def get(key: String): Option[Any] = { checkKey(key) Option(client.get(key)) } def delete(key: String): Boolean = { checkKey(key) client.delete(key) } set("list", List(1, 2, 3, 4)) println(get("list")) }
这里须要注意的是,在windows平台,因为版本较旧,不支持二进制协议,运行上面的程序可能报错,能够在linux下安装新版本的memcached。 ruby
附linux下memcached的安装: memcached
到http://memcached.org/ 下载源码包,因为memcached依赖libevent,因此还要去http://libevent.org 下载libevent源码,先安装libevent,若是已经安装能够忽略。 ui
安装libevent google
./configure --prefix=/usr/local/tools/libevent若是装libevent安装在/usr/locap/tools/libevent,那么安装memcached使用下面的设置来安装
./configure --prefix=/usr/local/tools/memcached --with-libevent=/usr/local/tools/libevent启动脚本(start.sh)
./memcached -d -m 64 -u root -p 11211 //根据须要修改相应参数设置 -m是指缓存内存大小。