Skip to content

Instantly share code, notes, and snippets.

@felipehummel
Created October 18, 2012 02:44
Show Gist options
  • Save felipehummel/3909583 to your computer and use it in GitHub Desktop.
Save felipehummel/3909583 to your computer and use it in GitHub Desktop.
jedis vs scala-redis in mget
package com.redis
import redis.clients.jedis._
object PerfTests {
def keys = (0 until 20000) map { "somekey:" + _ }
def populate() {
val jedis = new Jedis("localhost")
keys foreach { n =>
jedis.set("somekey:"+n, n.toString)
}
}
def measure(what: String)(f: => Int) {
val before = System.currentTimeMillis
val size = f
val after = System.currentTimeMillis
println("["+what+"] response.size: "+size)
println("["+what+"] "+(after - before) + " ms")
}
def jedis() {
val jedis = new Jedis("localhost")
measure("jedis") {
val response = jedis.mget(keys :_*)
response.size
}
}
def scalaRedis() {
val redis = new RedisClient("localhost", 6379)
val _keys = keys
measure("scalaRedis") {
val response = redis.mget(_keys.head, _keys.tail :_*).getOrElse(List())
response.size
}
}
def main(args: Array[String]): Unit = {
(1 until 10) foreach { n =>
println("iteration: "+n)
jedis()
scalaRedis()
}
}
}
// Results
// iteration: 1
// [jedis] response.size: 20000
// [jedis] 298 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 831 ms
// iteration: 2
// [jedis] response.size: 20000
// [jedis] 50 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 117 ms
// iteration: 3
// [jedis] response.size: 20000
// [jedis] 45 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 128 ms
// iteration: 4
// [jedis] response.size: 20000
// [jedis] 37 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 155 ms
// iteration: 5
// [jedis] response.size: 20000
// [jedis] 35 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 112 ms
// iteration: 6
// [jedis] response.size: 20000
// [jedis] 41 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 122 ms
// iteration: 7
// [jedis] response.size: 20000
// [jedis] 36 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 132 ms
// iteration: 8
// [jedis] response.size: 20000
// [jedis] 37 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 127 ms
// iteration: 9
// [jedis] response.size: 20000
// [jedis] 41 ms
// [scalaRedis] response.size: 20000
// [scalaRedis] 126 ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment