现在我的代码如下:
val elems = List("1","2","3")
for(elem <- elems){
redis.sadd("elems",elem)
}是否有任何方法来添加多个元素,如python的api。
How to use sadd with multiple elements in Redis using Python API?
发布于 2015-11-25 08:48:44
从源代码中可以看到,sadd在这里被定义为:https://github.com/debasishg/scala-redis/blob/master/src/main/scala/com/redis/SetOperations.scala:
def sadd(key: Any, value: Any, values: Any*)(implicit format: Format): Option[Long] =
send("SADD", List(key, value) ::: values.toList)(asLong)如果您手动列出元素,这是很好的。
redis.sadd("elems", "1", "2", "3")这样做是为了不允许使用空列表。使用这个api可以做的事情是
val elems = List("1","2","3")
redis.sadd("elems", elems.head, elems.tail: _*)您还可以通过隐式转换将适合您的方法添加到RedisClient类中。
implicit class RichRedis(self: RedisClient) {
def saddseq(key: Any, values: Seq[Any])(implicit format: Format): Option[Long] =
self.sadd(key, values.head, values.tail: _*)
}然后你就可以:
val elems = List("1","2","3")
redis.saddseq("elems", elems)请注意,您不能重载sadd,它需要一个不同的名称。
请记住,您不能对空列表调用head,因此,每当您对空列表使用此方法时,就会得到异常,考虑到不能只添加一个键,这是合理的。
https://stackoverflow.com/questions/33911710
复制相似问题