首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在memcached中存储不同案例类的列表

在memcached中存储不同案例类的列表
EN

Stack Overflow用户
提问于 2014-12-03 00:37:25
回答 1查看 74关注 0票数 0

把我自己困在一个问题上。我试图在memcached中存储来自MySQL数据库的数据5分钟,以减少对数据库的调用。我试图将数据存储在memcached中,为不同的案例类提供一个列表。这是我所拥有的案例类;

代码语言:javascript
复制
case class Provider(id:Int, name:String, region:String, auth_url:String, tenant:String, user:String, pass:String)

case class Plan(id:Int, name:String, price:Int, currency:String, flavor_ref:String, provider:Provider,
            cpus:Int, memory:Int, bandwidth:Int, disk:Int, priv_ips:Int, pub_ips:Int)

case class ServerGroup(id:Int, group_name:String, min_servers:Int, max_servers:Int, group_conf_id:String, plan:Plan, cloud:Provider)

case class Server(id:Int, ip:String, owner:String, config_id:String, root_user:String, root_pass:String, chefRun:Date, group:ServerGroup, plan:Plan, cloud:Provider)

下面是我试图将它存储在memcached中的一个例子

代码语言:javascript
复制
def getProvidersCache: List[Provider] = {
   val memcached = Memcached(Configuration("10.16.32.2:11211"), ec)

   memcached.awaitGet[List[Provider]]("pol_celestia_providers") match {
      case Some(providers) => return providers
      case None => {
        val providers = getProviders
        memcached.awaitSet("pol_celestia_providers", providers, Duration.create(300, "seconds"))
        return providers
      }
   }
 }

getProviders是一个从数据库检索数据并返回List[Providers]的调用。

但是,当我编译时,我总是得到这些错误。

欢迎任何帮助。

谢谢利亚姆。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 05:03:52

我已经解决了这个问题,我对这个主题做了更多的研究,发现scala/泡菜,现在我使用scala/泡菜将列表转换成json,并将它们存储在memcached中。

例如:

代码语言:javascript
复制
  def getProvidersCache: List[Provider] = {
    val memcached = Memcached(Configuration("10.16.32.2:11211"), ec)

    memcached.awaitGet[String]("pol_celestia_providers") match {
      case Some(data:String) => return (new JSONPickle(data)).unpickle[List[Provider]]
      case None => {
        val providers = getProviders
        memcached.awaitSet("pol_celestia_providers", providers.pickle.value, Duration.create(300, "seconds"))
        return providers
      }
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27261673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档