アドビ コミュニティ フォーラムに同様の質問を投稿しましたが、ここでも質問するように提案されました。
特定のデータベースに関連付けられた個別のクエリをキャッシュしようとしていますが、キャッシュされた他のクエリをそのまま残しながら、そのデータベースのすべてのクエリをフラッシュできる必要があります。そこで、ColdFusion の ehcache 機能を利用することにしました。この特定のデータベースからのクエリに使用する特定のキャッシュ リージョンを作成したので、cacheRemoveAll(myRegionName) を使用してそれらの保存されたクエリをフラッシュできます。
それぞれの個別のクエリをキャッシュして簡単に取得できるようにする必要があるため、クエリ パラメータを一意の文字列にハッシュして、各クエリのキャッシュ キーに使用することにしました。これまでに試したアプローチは次のとおりです。
- パラメーターのキーと値のペア (パラメーター名、パラメーター値) を含む Struct を作成します。
- SerializeJSON() を使用して構造体を文字列に変換します。
- Hash() を使用して文字列をハッシュします。
このアプローチは理にかなっていますか?他の人がキャッシュキーの生成にどのようにアプローチしたのか疑問に思っています。また、「MD5」アルゴリズムはこの目的に適していますか?それは一意のキー生成を保証しますか?それとも「SHA」を使用する必要がありますか?