在哪些地方可以缓存?

在Web服务中,缓存(Cache)被广泛应用于各个部分。通过学习在哪里以及如何使用缓存,以及应该缓存什么内容,您可以构建出高性能的Web服务。请参考。

我可以在哪里取现?

在客户端进行缓存

ブラウザにURLを入力するとHTTPリクエストがスタートします。
ブラウザではJavaScriptやCSSファイルは基本的にキャッシュされます。
他にも、Cookieやローカルストレージ/セションストレージをキャッシュとして用いるケースもあります。
モバイルの場合でしたら、モバイルのDBにキャッシュしておくなどもあります。
できるだけクライアントに近いところでキャッシュしたほうが、パフォーマンスは良くなります。その一番の場所がクライアントでのキャッシュになります。一方でクライアント側は、サービス側からは一番コントロールしずらい場所になりますので、キャッシュの破棄や更新方法については、しっかりと検討・実装しておく必要があります。

2. CDN缓存

CDNで静的ファイルを配信します。CloudFrare, Akamai, CloudFrontなどが有名ですね。こちらは各エッジサーバーで配信コンテンツをキャシュして返すことにより、Originへのリクエストを減らして、パフォーマンスを上げています。
エッジサーバーでキャッシュされているので、CDNサービスはキャッシュを破棄するための仕組みを提供していますので、Originのコンテンツを変更した場合には、キャッシュの破棄に気を付けましょう。

3. 应用程序接口网关

最近,当接收RestAPI时,放置网关作为反向代理的做法越来越常见。这个API网关也可以用来做缓存。

4. 网络服务器

即使不使用API Gateway,通常也会将Web服务器放置在AP服务器的前端。Nginx是非常有名的。最近,在AP服务器的前面作为反向代理服务器使用的情况变得越来越多,但在Web服务器阶段也可以进行缓存。

AP服务器的内存和硬盘

这是应用层。它经常被用来缓存到内存或者文件中,以减少对数据库的访问。此外,它也被用于会话缓存。

许多人可能只知道缓存,尤其是在进行应用开发时,这往往是首要考虑的事情。

6. 用于缓存的数据库(Redis、Memcache)

为了减少对数据库的访问次数,很多情况下会构建专用于缓存的数据库。如果假设应用服务器会进行横向扩展,那么通常会使用缓存数据库而不是在应用服务器上使用缓存。

7. 数据库服务器 (Database server)

最后是数据库。这是系统最容易成为瓶颈的部分。为了提高性能,首先要考虑的是数据库访问部分。
在这里,工程师可能不需要实施任何操作,但数据库本身也有查询缓存功能,用于加快查询处理。理解这一特性并设计可以被缓存的查询是很重要的。

对于缓存需格外注意

キャッシュの期間
どの程度の期間キャッシュが保持されるのか。TTLやExpiredなどの設定です。

キャッシュの更新
キャッシュをどのように更新するかということです。自分で実装することが多いですね。

キャッシュの破棄
キャッシュの保持期間を過ぎたら自動的に破棄されるケースもありますが、自前で破棄する方法を備えておくと、いざというときに約立ちます。

最后

让它可以运作无需缓存!!!请记住,这仅仅是缓存。
将其用作持久层是危险的(因为通常会将其保存在易失性存储介质上,如内存等)。

以上

bannerAds