[转帖]scala/liftweb中使用memcached_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3285 | 回复: 0   主题: [转帖]scala/liftweb中使用memcached        下一篇 
shuangqiang.xing
注册用户
等级:上尉
经验:737
发帖:64
精华:0
注册:2013-10-30
状态:离线
发送短消息息给shuangqiang.xing 加好友    发送短消息息给shuangqiang.xing 发消息
发表于: IP:您无权察看 2013-11-1 9:07:55 | [全部帖] [楼主帖] 楼主

     由于在项目中需要使用有时效性的缓存,为图方便就使用了memcached,memcached有个特性就是可以设置缓存数据的时效,这个对于存放验证码等数据非常方便。当然redis也可以,根据项目需求来选择吧!

首先在build.sbt中增加

"com.googlecode.xmemcached" % "xmemcached" % "1.4.2"

这里使用的memcached客户端是 xmemcached。

下面是简单封装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。

附linux下memcached的安装:

到http://memcached.org/ 下载源码包,由于memcached依赖libevent,所以还要去http://libevent.org 下载libevent源码,先安装libevent,如果已经安装可以忽略。

安装libevent

./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是指缓存内存大小。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论