2

我主要是在 Play 的上下文中谈论数据库和缓存!Heroku 上的应用程序:

缓存对数据库有什么作用以及如何使用它?

4

1 回答 1

3

缓存用于避免过多地查询数据库。

一些查询需要特别长的时间才能运行。通过缓存结果(例如,将其保存在内存中),不需要再次执行昂贵的查询(在数据仍然有效的一段时间内 - 有效性可能是几分钟,或者直到某些数据某个表发生变化)。

缓存通常只是实现为一个巨大的哈希表,将键和值。键用于查找值。

http://www.playframework.org/documentation/2.0/ScalaCache描述了缓存的使用。为它编写代码非常容易。要将某些内容存储在缓存中:

Cache.set("item.key", connectedUser)

在这里,您只需传递存储对象的密钥和对象。

要检索它:

val user: User = Cache.getOrElseAs[User]("item.key") {
  User.findById(connectedUser)
}

基本上,getOrElseAs[将数据投射到此处的类](此处的键)。

注意你可以传递给的块getOrElseAs,这样如果没有找到,你可以查询数据库。

否则,您也可以使用Cache.getAs[User]("item.key")(但如果找不到,您可能还是想查询)。

于 2012-09-01T12:40:23.133 回答