尝试使用Spray和scala-redis

嗨,
这次我们要讨论的是如何用Spray使用Redis。
主要是关于Scala的Redis客户端scala-redis的内容。

请准备好Spray和Redis。

只要使用sbt来操作,不一定非要使用Spray,因为这是关于scala-redis的用法。Redis是必需的。

首先,在build.sbt中添加以下代码”net.debasishg” %% “redisclient” % “3.0”。

如果您是使用IntelliJ的人,只需在添加时保存即可,IDEA会自动处理。

在添加了之前的代码后,基本上就完成了。请在应用程序的根目录。

sbt
>update
>console

请在REPL中键入并尝试操作Redis
请保持Redis处于启动状态

redis-server
redis-cli
127.0.0.1:6379>

首先在Scala的REPL中导入scala-redis库。

scala> import com.redis._
import com.redis._

接下来将连接到Redis数据库

scala> val red = new RedisClient("127.0.0.1", 6379)
red: com.redis.RedisClient = 127.0.0.1:6379

最后是设置值和获取值。

scala> red.set("scala", "最高")
res0: Boolean = true

scala> red.get("scala")
res1: Option[String] = Some(最高)

应用Redis的交互模式,检查值是否被保存。在这里,执行”get key”操作。

127.0.0.1:6379> get scala
"\xe6\x9c\x80\xe9\xab\x98"

哎呀,情况不太理想了。
由于打算保存会话密钥,就不考虑多字节编码了,哈哈。

如果最高是saikoh的话。

127.0.0.1:6379> get scala
"saikoh"

只是变成了如此而已,非常棒。

接下来,让我们也在Spray中写下来。

object Redis {
  import com.redis._

  val red = new RedisClient("127.0.0.1", 6379)
  def set(key: String, value: String): Boolean = red.set(key,value)
  def get(key: String): String = red.get(key).getOrElse("")
}

暂时写下这个东西吧,同时启动Redis。

respondWithMediaType(`application/json`) { complete { s"""{"key scala": value is ${ Redis.get("scala") }"}""" } }

请放心,我认为这是很酷的。只关注这里很重要。
Redis.get(“scala”)
正在获取在Redis存储的键为scala的值。

这个回应在浏览器上会变成这样。

{"key scala": value is 最高"}

你觉得怎么样?
在Scala里使用Redis真的非常简单。
相比用Slick连接MySQL,它要简单得多、更容易理解,真是太棒了。

参考:
只要看这里,就会明白scala-redis的GitHub页面。

由于 Redis 官方支持许多客户端,因此我希望找时间尝试其他客户端。您可以在这里查看官方文档:http://redis.io/clients#scala。

以上就是这次相当粗糙的解释,那么