2014-12-03 41 views
0

讓我自己陷入了一個問題。我試圖將數據從MySQL數據庫存儲在memcached中5分鐘,以降低對數據庫的調用。我試圖將數據存儲在不同case類的List中的memcached中。這些是我擁有的案例類;在memcached中存儲不同案例類的列表

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的

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]

但是,當我編譯我不斷收到這些錯誤

IntelliJ IDEA Error - Scala

歡迎任何幫助。

謝謝,利亞姆。

回答

0

我有固定的問題,我做了一些更多的研究進入正題,發現斯卡拉/酸洗,我現在用的斯卡拉/酸洗到列表轉換成JSON,並將其儲存在memcached的

例如

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 
     } 
    } 
    }