尝试使用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。
以上就是这次相当粗糙的解释,那么