我主要是在 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
的 block ,这样如果没有找到,您可以查询数据库。
否则,您也可以使用 Cache.getAs[User]("item.key")
(但如果找不到,您可能仍想查询)。
关于database - 什么是数据库缓存以及如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227752/