JAvaでよく使われるいくつかのキャッシュタイプの紹介
2597 ワード
通常の開発ではlocache,redisなどのキャッシュがよく用いられるが,キャッシュについては比較的包括的なまとめは行われていない.次に、キャッシュとは何か、なぜキャッシュを使用するのか、キャッシュの分類、および各キャッシュの使用をそれぞれ分析し、キャッシュをより深く理解します.
1.キャッシュとは
キャッシュを使用する前に、キャッシュとは何かを理解する必要があります.次に、ウィキペディアのキャッシュの定義を示します.
キャッシュは、コンピュータ上の元のデータのレプリケーションセットであり、アクセスを容易にします.
キャッシュはコンピュータシステムに広く応用されており、キャッシュの定義から見ると、キャッシュはコンピュータ上の元のデータの複製セットであるため、キャッシュの使用はアプリケーションシーンと密接に関連しており、異なるシーンでは異なる意味を持つ.
2.キャッシュを使用する理由
まず、インターネットアプリケーションにとって、ユーザー体験は非常に重要であり、キャッシュを使用する目的は、サービスの性能を向上させることによってアプリケーションのユーザー体験を向上させることである.
システム性能の指標は一般的に、応答時間、遅延時間、スループット、同時ユーザ数、リソース利用率などのいくつかの面を含む.
スループット:システムが単位時間で処理するリクエストの数
3.キャッシュの分類
Javaプログラム開発者にとって、キャッシュがソフトウェアシステムにキャッシュされている場所によって、キャッシュは大きく3つに分けることができます.クライアントキャッシュ サービス側キャッシュ ネットワークにおけるキャッシュ 次に、主にクライアントキャッシュとネットワーク内のキャッシュについて簡単に説明し、サービス側のキャッシュについて詳しく説明します.
3.1クライアントキャッシュ
BSアーキテクチャのインターネットアプリケーションでは、クライアントキャッシュは主にページキャッシュとブラウザキャッシュの2種類に分けられ、APPでは主に自身が使用するキャッシュである.
3.2ネットワークにおけるキャッシュ
ネットワーク内のキャッシュとは、主にプロキシサーバがクライアントに対してデータを要求するキャッシュを指し、主にWEBプロキシキャッシュとエッジキャッシュ(CDNエッジキャッシュ)に分けられる.
3.3サービス側キャッシュ
サービス側キャッシュでは、システムのアーキテクチャからキャッシュを区別してサーバネイティブキャッシュ 分散キャッシュ(Redis、Memcached等のnosql) データベースキャッシュ 3.3.1サーバローカルキャッシュ
ローカルキャッシュは1級キャッシュであり、サービス本体のメモリにあり、ローカルキャッシュを操作する際にネットワークIOを必要とせずファイルIOを必要とせず、直接本体メモリからデータを読み出すため、読み書き速度が最も速い.
ローカルキャッシュの問題:このリードキャッシュデータはそのままJVMに保存する、キャッシュデータの大きさ、JVMのゴミ回収性能消費 を考慮する必要がある.単一サービスがクラスタ配備である場合、クラスタ内のローカルキャッシュのデータ同期 を行う必要があるかどうかを考慮すべきである.
実際の開発では簡単なローカルキャッシュを自分で実現したり、ehcache、JBoss Cacheなどのオープンソースのローカルキャッシュフレームワークを使用したりすることができます.
3.3.2分散キャッシュ
ローカルキャッシュが貫通すると、分散キャッシュがクエリーされ、分散キャッシュでデータがクエリーされると、クエリー結果がローカルキャッシュに直接配置されます.分散キャッシュでは主にNoSQLデータベースを使用して実装され、よく使用されるNoSQLデータベースにはRedis、Memcached、MongoDBなどがあります.現在流行しているRedisではSlava/MasterモードとClusterをサポートしています
3.3.3キャッシュ内のいくつかの一般的な用語
3.3.4クラウドサービスによるキャッシュサービス
国内のアリクラウドプロバイダはRedisのクラウドサーバーを提供し、これらのサービスには以下の特徴がある.
3.3.5データベース・キャッシュ
データベースは設計時にキャッシュ操作もあり、関連パラメータを変更してクエリーキャッシュを開く
1.キャッシュとは
キャッシュを使用する前に、キャッシュとは何かを理解する必要があります.次に、ウィキペディアのキャッシュの定義を示します.
キャッシュは、コンピュータ上の元のデータのレプリケーションセットであり、アクセスを容易にします.
キャッシュはコンピュータシステムに広く応用されており、キャッシュの定義から見ると、キャッシュはコンピュータ上の元のデータの複製セットであるため、キャッシュの使用はアプリケーションシーンと密接に関連しており、異なるシーンでは異なる意味を持つ.
2.キャッシュを使用する理由
まず、インターネットアプリケーションにとって、ユーザー体験は非常に重要であり、キャッシュを使用する目的は、サービスの性能を向上させることによってアプリケーションのユーザー体験を向上させることである.
システム性能の指標は一般的に、応答時間、遅延時間、スループット、同時ユーザ数、リソース利用率などのいくつかの面を含む.
スループット:システムが単位時間で処理するリクエストの数
3.キャッシュの分類
Javaプログラム開発者にとって、キャッシュがソフトウェアシステムにキャッシュされている場所によって、キャッシュは大きく3つに分けることができます.
3.1クライアントキャッシュ
BSアーキテクチャのインターネットアプリケーションでは、クライアントキャッシュは主にページキャッシュとブラウザキャッシュの2種類に分けられ、APPでは主に自身が使用するキャッシュである.
3.2ネットワークにおけるキャッシュ
ネットワーク内のキャッシュとは、主にプロキシサーバがクライアントに対してデータを要求するキャッシュを指し、主にWEBプロキシキャッシュとエッジキャッシュ(CDNエッジキャッシュ)に分けられる.
3.3サービス側キャッシュ
サービス側キャッシュでは、システムのアーキテクチャからキャッシュを区別して
ローカルキャッシュは1級キャッシュであり、サービス本体のメモリにあり、ローカルキャッシュを操作する際にネットワークIOを必要とせずファイルIOを必要とせず、直接本体メモリからデータを読み出すため、読み書き速度が最も速い.
ローカルキャッシュの問題:
実際の開発では簡単なローカルキャッシュを自分で実現したり、ehcache、JBoss Cacheなどのオープンソースのローカルキャッシュフレームワークを使用したりすることができます.
3.3.2分散キャッシュ
ローカルキャッシュが貫通すると、分散キャッシュがクエリーされ、分散キャッシュでデータがクエリーされると、クエリー結果がローカルキャッシュに直接配置されます.分散キャッシュでは主にNoSQLデータベースを使用して実装され、よく使用されるNoSQLデータベースにはRedis、Memcached、MongoDBなどがあります.現在流行しているRedisではSlava/MasterモードとClusterをサポートしています
3.3.3キャッシュ内のいくつかの一般的な用語
1. : , ,
2. : , ,
3. : 。 , , , , , 。 , 。
4. : , 。
5. : ,
6. : , , , , , 。
:LRU、LFU 。 , 、 、 。
8.
3.3.4クラウドサービスによるキャッシュサービス
国内のアリクラウドプロバイダはRedisのクラウドサーバーを提供し、これらのサービスには以下の特徴がある.
1. : Redis
2. ,
3. : , ,
3.3.5データベース・キャッシュ
データベースは設計時にキャッシュ操作もあり、関連パラメータを変更してクエリーキャッシュを開く