Scala 使用Redis存储ListBuffer[List[Double]]

Scala 使用Redis存储ListBuffer[List[Double]],scala,redis,jedis,Scala,Redis,Jedis,我正在使用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, timeo

我正在使用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)
      }
    }
  }

我想复制相同的case类,但要将
String
存储为值,我想存储
ListBuffer[List[Double]]
。但是我在RedisAPI中找不到这样做的方法,这就是我在这里问这个问题的原因。

我将整个结构存储为JSON,并将其读取为JSON。这很简单,易于维护

Redis商店列表

object MyJacksonMapper extends JacksonMapper
val jsonListBuffer= MyJacksonMapper.serializeJson(myListBuffer)
Dress.up(client).set("listbuffer",jsonListBuffer)
Redis Get

val json = Dress.up(client).get("listbuffer") 
val myNewObject = MyJacksonMapper.deserializeJson[ListBuffer](json)

重要的是您希望如何使用这些数据?您想只获取一条记录(ListBuffer[2][3])还是获取整个ListBuffer(ListBuffer[2])?我需要获取整个ListBuffer,而不仅仅是从他那里获得几点。作为舒尔,您将永远需要整个ListBuffer?是的,永远需要。我想将几个键与这种数据关联起来。类似于
1->ListBuffer(List(1,2),List(3,4)),2->ListBuffer(List(10,10),List(20,20))
。如果您有许多列表,您可以存储为List,也可以存储为SET ListBuffer:1,ListBuffer:2….等等。