database - 什么是数据库缓存以及如何使用它?

标签 database caching heroku playframework playframework-2.0

我主要是在 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/

相关文章:

perl - 试图预测 future 的结果,collat​​z,Perl

ruby-on-rails - Heroku 仍然响应 mysubdomain.herokuapp.com

php - 与 Doctrine PHP 的关联

javascript - 是否可以为我的 sqlite 数据库生成一个随机且唯一的 5 位数 ID?

hibernate - ColdFusion ORM 缓存和 LogSQL

java - 在 Spring 中检索缓存列表

php - 为什么我在将 Symfony 4 应用程序部署到 Heroku 时遇到问题?

python - Heroku Python 二进制库依赖

iphone - 如何在多部 iPhone 上使用相同的 sqlite 数据

MySQL 查询仅选择一个条目