我主要是在 Play 的上下文中谈论数据库和缓存!Heroku 上的应用程序:
缓存对数据库有什么作用以及如何使用它?
我主要是在 Play 的上下文中谈论数据库和缓存!Heroku 上的应用程序:
缓存对数据库有什么作用以及如何使用它?
缓存用于避免过多地查询数据库。
一些查询需要特别长的时间才能运行。通过缓存结果(例如,将其保存在内存中),不需要再次执行昂贵的查询(在数据仍然有效的一段时间内 - 有效性可能是几分钟,或者直到某些数据某个表发生变化)。
缓存通常只是实现为一个巨大的哈希表,将键和值。键用于查找值。
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")
(但如果找不到,您可能还是想查询)。