マニュアル キャンセル

キャッシュ機能の強化

  1. ColdFusion デベロッパーガイド
  2. ColdFusion アプリケーションの開発
    1. ColdFusion の概要
      1. ColdFusion の概要
      2. ColdFusion について
      3. インターネットアプリケーションと web アプリケーションサーバーについて
      4. JEE と ColdFusion アーキテクチャについて
    2. ColdFusion の変更点
      1. ColdFusion の変更点
      2. JRun から Tomcat への変更
      3. セキュリティの機能強化
      4. ColdFusion WebSocket
      5. Java 統合の強化
      6. ColdFusion ORM 検索によるインデックス作成と検索
      7. Solr の機能強化
      8. スケジューラーの機能強化
      9. Microsoft Exchange Server 2010 との統合
      10. ColdFusion での RESTful web サービス
      11. ColdFusion でのクライアントとサーバー間の遅延読み込み
      12. Web サービスの機能強化
      13. 地理位置情報の表示
      14. クライアントサイドのチャート作成
      15. キャッシュ機能の強化
      16. ColdFusion Administrator を使用したサーバーの更新
      17. ColdFusion Administrator のセキュアプロファイル
    3. アプリケーション開発の概要
      1. ColdFusion を使用したアプリケーション開発の概要
      2. 本マニュアルの使用について
      3. デベロッパー向き Adobe ColdFusion ドキュメントについて
    4. CFML プログラミング言語
      1. CFML プログラミング言語
      2. CFML の要素
      3. ColdFusion 変数
      4. 式および番号記号
      5. 配列と構造体
      6. CFML スクリプト言語による ColdFusion ページの拡張
      7. 関数の正規表現
      8. ColdFusion での言語の機能強化
      9. 第一級オブジェクトとしての組み込み関数
      10. データ型開発ガイド
    5. ColdFusion アプリケーションのビルディングブロック
      1. ColdFusion アプリケーションのビルディングブロック
      2. ColdFusion 要素の作成
      3. ユーザー定義関数の記述と呼び出し
      4. ColdFusion コンポーネントの作成と使用
      5. カスタム CFML タグの作成と使用
      6. カスタム CFXAPI タグの作成
      7. メンバー関数の使用
      8. ColdFusion でのオブジェクト指向プログラミング
    6. CFML アプリケーションの開発
      1. CFML アプリケーションの開発
      2. ColdFusion アプリケーションのデザインと最適化
      3. エラーの処理
      4. 永続データとロックの使用
      5. ColdFusion スレッドの使用
      6. セキュリティで保護されたアプリケーション
      7. クライアントサイド CFML(モバイル開発向け)
      8. ColdFusion デバッガの使用
      9. アプリケーションのデバッグとトラブルシューティング
      10. グローバライズしたアプリケーションの開発
      11. ColdFusion での REST 機能強化
      12. OAuth による認証
      13. ソーシャルの機能強化
    7. モバイルアプリケーションの開発
      1. モバイルアプリケーションの開発
      2. モバイルアプリケーションの構築
      3. モバイルアプリケーションのデバッグ
      4. モバイルアプリケーションの検証
      5. モバイルアプリケーションのパッケージ化
      6. モバイルアプリケーションのトラブルシューティング
      7. デバイス検出
      8. クライアントサイド CFML
      9. モバイルテンプレート
      10. モバイルアプリケーションを作成するためのコード例
    8. データのアクセスと使用
      1. データのアクセスと使用
      2. データベースおよび SQL の概要
      3. データへのアクセスと取得
      4. データベースの更新
      5. クエリのクエリの使用
      6. LDAP ディレクトリの管理
      7. Solr 検索のサポート
    9. ColdFusion ORM
      1. ColdFusion ORM
      2. ColdFusion ORM の概要
      3. ORM アーキテクチャ
      4. ORM の設定
      5. ORM マッピングの定義
      6. オブジェクトの操作
      7. ORM セッション管理
      8. トランザクションと同時性
      9. HQL クエリの使用
      10. データベーススキーマの自動生成
      11. ORM における複数のデータソースのサポート
      12. ColdFusion ORM 検索
    10. ColdFusion と HTML 5
      1. ColdFusion と HTML 5
      2. ColdFusion Web Sockets の使用
      3. メディアプレーヤーの機能拡張
      4. クライアントサイドのチャート作成
      5. 地理位置情報データの表示
    11. ColdFusion での Flex と AIR の統合
      1. ColdFusion での Flex と AIR の統合
      2. Flash Remoting サービスの使用
      3. Flash Remoting 更新の使用
      4. オフライン AIR アプリケーションのサポート
      5. ColdFusion サービスのプロキシ ActionScript クラス
      6. LiveCycle Data Services ES アセンブラーの使用
      7. サーバーサイド ActionScript の使用
    12. 情報の要求と提示
      1. 情報の要求と提示
      2. データの検索とフォーマット設定
      3. cfform タグによるダイナミックフォームの作成
      4. データの検証
      5. Flash フォームの作成
      6. スキン可能 XML フォームの作成
      7. Ajax データおよび開発機能の使用
      8. Ajax ユーザーインターフェイスコンポーネントおよび機能の使用
    13. Office ファイルとの相互運用性
      1. Office ファイルとの相互運用性
      2. cfdocument の使用
      3. cfpresentation の使用
      4. cfspreadsheet の使用
      5. サポートされている Office 変換形式
      6. SharePoint の統合
    14. ColdFusion ポートレット
      1. ColdFusion ポートレット
      2. JBoss Portal Server での ColdFusion ポートレットの実行
      3. WebSphere Portal Server での ColdFusion ポートレットの実行
      4. portlet.cfc で使用する一般的なメソッド
      5. ColdFusion ポートレットコンポーネント
      6. JSR-286 のサポート
    15. ドキュメント、チャート、レポートの操作
      1. ドキュメント、チャート、レポートの操作
      2. ColdFusion での PDF フォームの操作
      3. PDF ドキュメントの組み立て
      4. ColdFusion 画像の作成および操作
      5. チャートとグラフの作成
        1. チャートについて
        2. 基本的なチャートの作成
        3. チャートの作成
        4. チャートの外観の設定
        5. チャートの作成:例
        6. チャートの管理
        7. 変数へのチャートの書き込み
        8. チャートのリンク先 URL の設定
        9. チャート作成の機能強化
      6. 印刷用のレポートとドキュメントの作成
      7. Report Builder を使用したレポートの作成
        1. Report Builder について
        2. 一般的なレポート作成作業と方法
        3. 簡単なレポートの作成
        4. はじめに
      8. スライドプレゼンテーションの作成
    16. Web 要素および外部オブジェクトの使用
      1. Web 要素および外部オブジェクトの使用
      2. XML と WDDX の使用
      3. Web サービスの使用
      4. ColdFusion web サービスの使用
      5. CFML アプリケーションへの JEE および Java 要素の統合
      6. Microsoft .NET アセンブリの使用
      7. CFML アプリケーションでの COM および CORBA オブジェクトの統合
    17. 外部リソースの使用
      1. E メールの送受信
      2. Microsoft Exchange Server との連携
      3. リモートサーバーとの連携
      4. サーバー上のファイルの管理
      5. イベントゲートウェイの使用
      6. カスタムイベントゲートウェイの作成
      7. Eclipse 用 ColdFusion 拡張機能の使用
      8. データサービスメッセージングイベントゲートウェイの使用
      9. データ管理イベントゲートウェイの使用
      10. FMS イベントゲートウェイの使用
      11. インスタントメッセージングイベントゲートウェイの使用
      12. SMS イベントゲートウェイの使用

ColdFusion では、デフォルトのキャッシュエンジンである Ehcache に加え、次のキャッシュエンジンがサポートされています。

Administrator の設定の変更

ColdFusion Administrator では、サーバーの設定/キャッシュ機能をクリックしてキャッシュエンジンを選択できます。

キャッシュエンジンの選択
キャッシュエンジンの選択

選択するオプションに応じて、一部の設定を変更する必要がありま。

JCS

Java Caching System(JCS)は Apache Jakarta サブプロジェクトを通じてリリースされているオープンソースのキャッシュエンジンです。JCS にはメモリ内キャッシュ機能と、キャッシュ内のオブジェクトを選択的に削除するためのアルゴリズムがあります。また 、 インデックスディスクキャッシュや、分散キャッシュのサポートなど、高度な機能も備えています。

JCS を使用するには、ColdFusion Administrator で上の図に示すオプションを選択します。

JCS はアプリケーションレベルで設定することもできます。キャッシュエンジンとキャッシュプロパティファイルを設定するには、新しいアプリケーション変数を使用します。

Application.cfc

component{
  this.name = "appSpecificCacheTest";
  this.cache.configfile = "jcsconfig.properties";
      this.cache.engine = 'jcs';
  this.applicationTimeout = createtimespan(0,0,0,5); 
}

Application.cfc で定義できる 変数 について詳しくは 、 Application.cfc 変数を参照してください。

jcsconfig.properties

maxElementsInMemory=5
eternal=false
timeToIdleSeconds=30
timeToLiveSeconds=5

下の図に示すように、これらの設定は Administrator(サーバーの設定/キャッシュ機能)でも変更できます。

JCS プロパティ
JCS プロパティ

設定を確認するには、次のような cfm を作成します。

<cfscript>
 writedump(cacheGetEngineProperties()); // Returns the cache engine properties
 writeoutput(cacheGetEngineProperties().name); // Returns the name of the cache engine
</cfscript>

JCS での補助キャッシュのサポート

JCS を使用するとデータベース内にキャッシュを常駐させて、複数のノードを経由してキャッシュにアクセスできるようになります。ColdFusion Administrator で、JCS のクラスタリングに使用するデータソースを追加します。

ColdFusion Administrator で、サーバーの設定/キャッシュ機能をクリックします。ドロップダウンからデータソースを選択します。

JCS 補助キャッシュの設定
JCS 補助キャッシュの設定

変更を保存すると、選択したデータソースに JCS_STORE というテーブルが作成されます。

この例では、My SQL を補助キャッシュとして使用しています。

JCS で補助キャッシュをサポートするには、<coldfusion_install_dir>/cfusion/lib にある cache.ccf ファイルを編集します。次の行を追加します。

# MYSQL disk cache used for flight options
jcs.auxiliary.MYSQL=org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheFactory
jcs.auxiliary.MYSQL.attributes=org.apache.commons.jcs.auxiliary.disk.jdbc.JDBCDiskCacheAttributes
jcs.auxiliary.MYSQL.attributes.userName=<user name>
jcs.auxiliary.MYSQL.attributes.password=<password>
# Make sure the datasource is the one in which JCS_STORE is created 
# via the Administrator
jcs.auxiliary.MYSQL.attributes.url=jdbc:mysql://localhost:3306/<datasource>
jcs.auxiliary.MYSQL.attributes.driverClassName=com.mysql.jdbc.Driver
jcs.auxiliary.MYSQL.attributes.tableName=JCS_STORE
jcs.auxiliary.MYSQL.attributes.UseDiskShrinker=false

また、cache.ccf で jcs.default = MYYSQL を設定します。

ColdFusion を再起動します。

JDBC ディスクキャッシュでは MySQL などのリレーショナルデータベースが永続データストアとして使用されます。キャッシュ要素はシリアル化されて BLOB に書き込まれます。

Memcached

Memcached は Java エンタープライズアプリケーション向けの分散キャッシュソリューションです。1 つの Memcached サーバーを複数の ColdFusion インスタンス間で共有することもできますが、1 つの ColdFusion インスタンスで複数の Memcached サーバーを設定することもできます。

Memcached を使用するには、Memcached をダウンロードし、次のコマンドを使用してコマンドラインからサーバーを起動します。

memcached

Memcached サーバーは デフォルトでポート 11211 を使用します。

ColdFusion Administrator でサーバーの設定/キャッシュ機能をクリックし、Memcached サーバーの詳細を指定します。

Memcached サーバー
Memcached サーバー

Memcached はアプリケーションレベルで設定することもできます。キャッシュエンジンを宣言するために使用する必要がある新しいアプリケーション変数は次の 2 つです。

  • this.cache.engine使用するキャッシュエンジンを指定します。選択できるオプションは jcs または memcached または ehcache です。
  • this.cache.configFile memcached の設定ファイルを指定します。例えば、このファイルには、次のようなキーと値のペアを含めることができます。
maxElementsInMemory=5
eternal=false
timeToIdleSeconds=30
timeToLiveSeconds=5

下の図に示すように、これらの設定は Administrator(サーバーの設定/キャッシュ機能)でも変更できます。インターフェイスは他のキャッシュエンジンとほぼ同じです。

Memcached の設定
Memcached の設定

// Application.cfc

component{
 this.name='appUsingMemcached';
 this.cache.engine='memcached';
 this.cache.configFile='memcachedconfig.properties';
 this.cache.applicationTimeout=createtimespan(0,0,0,5);
}
// memcachedconfig.properties

maxElementsInMemory=5
eternal=false
timeToIdleSeconds=30
timeToLiveSeconds=10

Redis

Redis はデータベースおよびキャッシュとして使用されるオープンソース(BSD ベース)のメモリ内データ構造ストアです。文字列、ハッシュ、リスト、セットなどのデータ構造体がサポートされています。

Redis を使用するには、Redis をダウンロードし、次のコマンドを使用してコマンドラインからサーバーを起動します。

redis-server

Redis サーバーはデフォルトでポート 6379 を使用します。

Redis は分散型のソリューションです。クラスター環境では、すべてのノードが同じ Redis ノードと通信できます。

ColdFusion Administrator でサーバーの設定/キャッシュ機能をクリックし、Redis サーバーの詳細を指定します。

Redis の設定
Redis の設定

Redis はアプリケーションレベルで設定することもできます。キャッシュエンジンを宣言するために使用する必要がある新しいアプリケーション変数は次の 2 つです。

  • this.cache.engine:使用するキャッシュエンジンを指定します。選択できるオプションは jcs、redis、memcached または ehcache です。
  • this.cache.configFile:Redis の設定ファイルを指定します。例えば、このファイルには、次のようなキーと値のペアを含めることができます。
maxElementsInMemory=5
eternal=false
timeToIdleSeconds=30
timeToLiveSeconds=5
<!--- Application.cfc --->

<cfcomponent>
    <cfscript>
        this.name = "appSpecificCacheTest";
        this.cache.configfile = "redisconfig.properties";
        this.cache.engine = "redis";
        this.applicationTimeout = createtimespan(0,0,0,5);
    </cfscript>
</cfcomponent>
// redisconfig.properties

maxElementsInMemory=5
eternal=false
timeToIdleSeconds=30
timeToLiveSeconds=5

カスタムキャッシュプラグイン

Memcached、Redis、JCS を使用する以外に、カスタムキャッシュプラグインを実装することもできます。カスタムキャッシュエンジンを実装するためのインターフェイス(C:\ColdFusion2021\cfusion\wwwroot\CFIDE\cache\ICustomCache.cfc)も用意されています。

実装は ICustomCache.cfc と同じフォルダーに配置する必要があります。

ColdFusion は Infinispan ライブラリを利用します。安定版リリースから次のファイルをダウンロードします。

  • infinispan -embedded-query-9.1.3.Final.jar
  • infinispan -embedded-9.1.3.Final.jar

これらのファイルを C:\ColdFusion2021\cfusion\lib にコピーして ColdFusion を再起動します。

カスタムプラグインを追加するには:

  1. C:\ColdFusion2021\cfusion\wwwroot\CFIDE\cache にフォルダーを作成します。このフォルダーの名前はカスタムプラグインと同じ名前にする必要があります。

  2. ICustomCache.cfc を実装する <any CFC name>.cfc を作成し、実装を記述します。次に例を示します。

    <cfcomponent implements="ICustomCache">
        <cffunction name="put" >
            <cfargument name="obj" type="struct">
                <cfoutput>"inside put"</cfoutput>
                <cfset defaultCache=Application.defaultCacheManager.getcache()>
                <cfset defaultCache.put(obj.id,#obj.value#)>
        </cffunction>
    </cfcomponent>
  3. Infinispan ライブラリへの参照を含む config.xml を 作成します。

    <infinispan>
        <cache-container default-cache="local">
            <local-cache name="local"/>
        </cache-container>
    </infinispan>
  4. Application.cfc を作成します。

    <cfcomponent> 
        <cfset this.name= "xyz"> 
            <cfscript> 
                function onApplicationStart() 
                { 
                    writelog("In onApplicationStart()"); 
                    Application.defaultCacheManager=CreateObject("java","org.infinispan.manager.DefaultCacheManager").init('C:\ColdFusion2021\cfusion\wwwroot\custom_cache\config.xml'); 
                    writelog("In onApplicationStart()"); 
    } 
                    function onApplicationEnd() { 
                    writelog("In onApplicationEnd()"); 
    } 
            </cfscript> 
    </cfcomponent>

次のコードを使用してアプリケーションを作成します。

// Application.cfc

<cfcomponent>
    <cfscript>
        this.name = "mycache_app";
        this.cache.engine = "mycache";
    </cfscript>
</cfcomponent>

Admin API

ColdFusion 2018 リリースのキャッシュ機能に関連する Admin API は 次の とおりです。これらの API は runtime.cfc に含まれています。

verifyRedisCacheStorageConnection

説明:Redis キャッシュストレージへの接続を確認します。

シンタックス

void verifyRedisCacheStorageConnection (sessionStorageHost, numeric sessionStoragePort, sessionStoragePassword)

パラメーター

必須/オプション

デフォルト

説明

sessionStorageHost

オプション

Any

Redis キャッシュストレージのホスト名。

sessionStoragePort

オプション

Numeric

Redis キャッシュストレージのポート番号。

sessionStoragePassword

オプション

Any

Redis キャッシュストレージのパスワード。

setServerCachingEngine

説明:サーバーレベルでキャッシュエンジンを変更します。

シンタックス

void setServerCachingEngine (required engine)

パラメーター

必須/オプション

デフォルト

説明

engine

必須

Any

1.       Ehcache

2.      JCS

3.      Memcached

4.      Redis

setJCSClusterDsnName

説明:JCS クラスターのデータソースを設定します。

シンタックス

void setJCSClusterDsnName (required dsn, required boolean createTables)

パラメーター

必須/オプション

デフォルト

説明

dsn

必須

Any

データソースの名前。

createTables

必須

Any

テーブルを作成するかどうか。

setCachingRedisServer

説明:Redis のキャッシュエンジンを設定します。

シンタックス

void setCachingRedisServer (required host, required port, required password, required boolean cluster)

パラメーター

必須/オプション

デフォルト

説明

host

必須

any

サーバーのホストアドレス。

port

必須

any

サーバーのポート番号。

password

必須

any

サーバーのパスワード。

cluster

必須

Boolean

Redis でクラスターを有効にするかどうか。

getMemcachedServer

説明:Memcached キャッシュエンジンの詳細を取得します。

シンタックス

any getMemcachedServer ()

ColdFusion のキャッシュ機能について詳しくは、ColdFusion アプリケーションの最適化を参照してください。

Azure Redis Cache

Azure Cache for Redis は、Redis に基づいたメモリ内データストアを提供します。頻繁にアクセスされるデータを高性能ストレージにコピーすることによって、キャッシュパフォーマンスが強化されます。Azure Cache for Redis を使用すると、データベースによってディスクから読み込まれる代わりに、このストレージがメモリ内に配置されます。

Azure Cache for Redis は、次のように使用できます。

  • 分散データキャッシュ
  • セッションストア
  • メッセージブローカー

Azure Cache for Redis は、Azure でホストされ、Azure 内外の任意のアプリケーションからアクセスできます。詳しくは、Azure Cache for Redis を参照してください。

Azure Portal で、Redis Cache を作成します。

キャッシュの詳細ページで、次の情報を入力します。

  • プライマリキー
  • セカンダリキー
  • プライマリ接続文字列
  • セカンダリ接続文字列

これらの接続の詳細を ColdFusion Administrator のキャッシュページで使用します。

接続を確認」をクリックすると、キャッシュエンジンが Azure クラウドに保存されます。

AWS ElastiCache

Amazon ElastiCache は、Amazon Web Services の Caching-as-a-Service(サービスとしてのキャッシュ)です。AWS は、クラウドの分散メモリ内キャッシュ環境を管理およびスケーリングします。AWS は、分散キャッシュ環境のデプロイおよび管理に関する複雑さを取り除きます。

詳しくは、AWS ElastiCache を参照してください。

AWS ElastiCache は、次の機能を提供します。

  • キャッシュノードエラーの自動検出および回復。
  • 失敗したプライマリクラスターの自動フェイルオーバー
  • ノードおよびクラスターの柔軟なアベイラビリティーゾーンの配置

Amazon ElastiCache には、Memcached と Redis の 2 つのキャッシュエンジンが用意されています。既存の Memcached または Redis キャッシュ実装を Amazon ElastiCache に容易に移行できます。アプリケーションの Memcached/Redis エンドポイントを変更するだけです。

AWS では、EC2 インスタンスへの SSL トンネルを作成する必要があります。すると、localhost が AWS のキャッシュエンジンポートにリダイレクトされます。

AWS コンソールで、Redis および Memcached 用にキャッシュを作成してから、ColdFusion Administrator のキャッシュの詳細ページに詳細を入力します。

ヘルプをすばやく簡単に入手

新規ユーザーの場合