cache
「cache」とは・「cache」の意味
「cache」は、コンピュータの用語であり、高速なデータストレージの一部を指す。主にCPUが直接アクセスできるメモリの一部であり、頻繁に使用されるデータや命令を保持している。これにより、データへのアクセス時間を短縮し、全体のパフォーマンスを向上させる役割がある。「cache」の発音・読み方
「cache」の発音は、IPA表記では/kæʃ/となる。カタカナでのIPA読みは「カシュ」であり、日本人が発音する際のカタカナ英語の読み方も「カシュ」となる。この単語は発音によって意味や品詞が変わる単語ではない。「cache」の定義を英語で解説
A 'cache' is a component that stores data so that future requests for that data can be served faster. The data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. It is used to improve the performance of the computer.「cache」の類語
「cache」の類語としては、「buffer」や「memory」がある。これらもコンピュータの用語であり、データを一時的に保存する場所を指す。ただし、それぞれの役割や機能には違いがある。「cache」に関連する用語・表現
「cache」に関連する用語としては、「cache memory」、「cache hit」、「cache miss」などがある。「cache memory」は「cache」のことを指し、「cache hit」は要求されたデータが「cache」に存在する状態、「cache miss」は要求されたデータが「cache」に存在しない状態を指す。「cache」の例文
1. The cache stores frequently used data to speed up the computer.(キャッシュは頻繁に使用されるデータを保存して、コンピュータの速度を上げる。)2. The CPU accesses the cache memory before the main memory.(CPUはメインメモリより先にキャッシュメモリにアクセスする。)
3. The cache hit rate is high, which means the system is efficient.(キャッシュヒット率が高いということは、システムが効率的であるということだ。)
4. The data was not in the cache, resulting in a cache miss.(データはキャッシュに存在せず、キャッシュミスとなった。)
5. The larger the cache, the faster the data can be accessed.(キャッシュが大きければ大きいほど、データへのアクセスが速くなる。)
6. The cache is cleared to free up memory space.(メモリスペースを確保するためにキャッシュがクリアされる。)
7. The cache is located close to the CPU for quick access.(キャッシュは素早いアクセスのためにCPUの近くに位置している。)
8. The browser cache stores web page data to speed up loading times.(ブラウザのキャッシュは、ロード時間を速くするためにウェブページのデータを保存する。)
9. The cache memory is divided into levels based on speed and size.(キャッシュメモリは速度とサイズに基づいてレベルに分けられる。)
10. The cache controller manages the allocation and retrieval of data in the cache.(キャッシュコントローラはキャッシュ内のデータの割り当てと取得を管理する。)
キャッシュ【cache】
Cache クラス
アセンブリ: System.Web (system.web.dll 内)


このクラスのインスタンスは、アプリケーション ドメインごとに 1 つずつ作成されます。このインスタンスは、アプリケーション ドメインがアクティブである限り有効です。このクラスのインスタンスに関する情報は、HttpContext オブジェクトの Cache プロパティ、または Page オブジェクトの Cache プロパティから取得できます。

キャッシュ内の項目に割り当てられた値をユーザーに表示し、項目がキャッシュから削除されたときにユーザーに通知するページの例を次に示します。この例では、CacheItemRemovedCallback デリゲートのシグネチャを持つ RemovedCallback メソッドを作成して、キャッシュ項目が削除されたときにユーザーに通知し、CacheItemRemovedReason 列挙体を使用して、ユーザーに削除の理由を通知します。さらに、Cache.Item プロパティを使用して、オブジェクトをキャッシュに追加し、それらのオブジェクトの値を取得します。AddItemToCache メソッドでは、Cache.Add メソッドを使用して、項目をキャッシュに追加します。CacheItemRemovedCallback デリゲートを使用するには、このメソッドまたは Cache.Insert メソッドを使用して項目をキャッシュに追加し、項目が削除されたときに、ASP.NET が適切なメソッドを自動的に呼び出すことができるようにする必要があります。カスタム RemoveItemFromCache メソッドは、Cache.Remove メソッドを使用して、項目を明示的にキャッシュから削除します。その結果、RemovedCallback メソッドが呼び出されます。
<%@ Page Language="VB" %> <html> <Script runat=server> Shared itemRemoved As boolean = false Shared reason As CacheItemRemovedReason Dim onRemove As CacheItemRemovedCallback Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason) itemRemoved = true reason = r End Sub Public Sub AddItemToCache(sender As Object, e As EventArgs) itemRemoved = false onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback) If (IsNothing(Cache("Key1"))) Then Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, onRemove) End If End Sub Public Sub RemoveItemFromCache(sender As Object, e As EventArgs) If (Not IsNothing(Cache("Key1"))) Then Cache.Remove("Key1") End If End Sub </Script> <body> <Form runat="server"> <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/> <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/> </Form> <% If (itemRemoved) Then Response.Write("RemovedCallback event raised.") Response.Write("<BR>") Response.Write("Reason: <B>" + reason.ToString() + "</B>") Else Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>") End If %> </body> </html>
<html> <Script runat=server language="C#"> static bool itemRemoved = false; static CacheItemRemovedReason reason; CacheItemRemovedCallback onRemove = null; public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){ itemRemoved = true; reason = r; } public void AddItemToCache(Object sender, EventArgs e) { itemRemoved = false; onRemove = new CacheItemRemovedCallback(this.RemovedCallback); if (Cache["Key1"] == null) Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, onRemove); } public void RemoveItemFromCache(Object sender, EventArgs e) { if(Cache["Key1"] != null) Cache.Remove("Key1"); } </Script> <body> <Form runat="server"> <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/> <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/> </Form> <% if (itemRemoved) { Response.Write("RemovedCallback event raised."); Response.Write("<BR>"); Response.Write("Reason: <B>" + reason.ToString() + "</B>"); } else { Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>"); } %> </body> </html>
<html> <Script runat=server language="JScript"> static var itemRemoved : boolean = false; static var reason : CacheItemRemovedReason; var onRemove : CacheItemRemovedCallback = null; public function RemovedCallback(k : String, v : Object, r : CacheItemRemovedReason){ itemRemoved = true; reason = r; } public function AddItemToCache(sender : Object, e : EventArgs) { itemRemoved = false; onRemove = this.RemovedCallback; if (Cache["Key1"] == null) Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(10), TimeSpan.Zero, CacheItemPriority.High, onRemove); } public function RemoveItemFromCache(sender : Object, e : EventArgs) { if(Cache["Key1"] != null) Cache.Remove("Key1"); } </Script> <body> <Form runat="server"> <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/> <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/> </Form> <% if (itemRemoved) { Response.Write("RemovedCallback event raised."); Response.Write("<BR>"); Response.Write("Reason: <B>" + reason + "</B>"); } else { Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"].ToString()) + "</B>"); } %> </body> </html>

System.Web.Caching.Cache


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Cache コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Cache フィールド

名前 | 説明 | |
---|---|---|
![]() | NoAbsoluteExpiration | Insert メソッドの呼び出し内の absoluteExpiration パラメータで使用され、項目の有効期限が切れないことを示します。このフィールドは読み取り専用です。 |
![]() | NoSlidingExpiration | Insert または Add メソッドの呼び出し内で slidingExpiration パラメータとして使用され、スライド式有効期限を無効にします。このフィールドは読み取り専用です。 |

Cache プロパティ

名前 | 説明 | |
---|---|---|
![]() | Count | キャッシュ内に格納されている項目の数を取得します。 |
![]() | EffectivePrivateBytesLimit | キャッシュで使用できる KB 数を取得します。 |
![]() | Item | 指定したキーのキャッシュ項目を取得または設定します。 |

Cache メソッド

名前 | 説明 | |
---|---|---|
![]() | Add | 依存関係ポリシー、有効期限ポリシー、優先順位ポリシー、および挿入された項目が Cache から削除されたことをアプリケーションに通知するために使用するデリゲートが設定されている Cache オブジェクトに、指定された項目を追加します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | Get | Cache オブジェクトから指定した項目を取得します。 |
![]() | GetEnumerator | キャッシュに格納されているキー設定と値を反復処理するために使用されるディクショナリ列挙子を取得します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Insert | オーバーロードされます。 項目を Cache オブジェクトに挿入します。このメソッドの 1 つのバージョンを使用して、同じ key パラメータで既存の Cache 項目を上書きします。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Remove | アプリケーションの Cache オブジェクトから指定した項目を削除します。 |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |


Cache メンバ
Web アプリケーションのキャッシュを実装します。このクラスは継承できません。
Cache データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | NoAbsoluteExpiration | Insert メソッドの呼び出し内の absoluteExpiration パラメータで使用され、項目の有効期限が切れないことを示します。このフィールドは読み取り専用です。 |
![]() | NoSlidingExpiration | Insert または Add メソッドの呼び出し内で slidingExpiration パラメータとして使用され、スライド式有効期限を無効にします。このフィールドは読み取り専用です。 |

名前 | 説明 | |
---|---|---|
![]() | Count | キャッシュ内に格納されている項目の数を取得します。 |
![]() | EffectivePrivateBytesLimit | キャッシュで使用できる KB 数を取得します。 |
![]() | Item | 指定したキーのキャッシュ項目を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | Add | 依存関係ポリシー、有効期限ポリシー、優先順位ポリシー、および挿入された項目が Cache から削除されたことをアプリケーションに通知するために使用するデリゲートが設定されている Cache オブジェクトに、指定された項目を追加します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | Get | Cache オブジェクトから指定した項目を取得します。 |
![]() | GetEnumerator | キャッシュに格納されているキー設定と値を反復処理するために使用されるディクショナリ列挙子を取得します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Insert | オーバーロードされます。 項目を Cache オブジェクトに挿入します。このメソッドの 1 つのバージョンを使用して、同じ key パラメータで既存の Cache 項目を上書きします。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Remove | アプリケーションの Cache オブジェクトから指定した項目を削除します。 |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |


- cacheのページへのリンク