我正在使用Redis捕捉播放应用程序。使用Redis,我可以存储一些与case class Cache1
:
case class Cache1(val hostname : String, val port : Int, val timeout : Int) {
val pool : Pool =
new Pool(new JedisPool(new JedisPoolConfig(), hostname, port, timeout))
val j = pool.underlying.getResource
j.flushAll
pool.underlying.returnResourceObject(j)
def set(key : String, value : String) : Unit = pool.withClient { client =>
client.lpush(key, value)
}
def get(key : String) : Option[List[String]] = {
pool.withClient { client =>
val l : List[String] =
Dress.up(client).lrange(key, 0, Dress.up(client).llen(key)-1)
if(l.length == 0) return None else return Some(l)
}
}
}
我想重现相同的案例类,而是将String
存储为值,我想存储ListBuffer[List[Double]]
。但我无法在redis API中找到这样做的方法,这就是我在这里提出这个问题的原因。
答案 0 :(得分:0)
我将整个结构存储为JSON,并将其作为JSON读取。这很简单,易于维护。
Redis商店列表
object MyJacksonMapper extends JacksonMapper
val jsonListBuffer= MyJacksonMapper.serializeJson(myListBuffer)
Dress.up(client).set("listbuffer",jsonListBuffer)
Redis获取
val json = Dress.up(client).get("listbuffer")
val myNewObject = MyJacksonMapper.deserializeJson[ListBuffer](json)