我在 Adobe 社区论坛上发布了一个类似的问题,但也有人建议在这里提问。
我正在尝试缓存与特定数据库关联的不同查询,并且需要能够刷新该数据库的所有查询,同时保持其他缓存查询不变。所以我想我会利用 ColdFusion 的 ehcache 功能。我创建了一个特定的缓存区域来用于来自这个特定数据库的查询,因此我可以使用 cacheRemoveAll(myRegionName) 来刷新那些存储的查询。
由于我需要每个不同的查询都可以轻松地被缓存和检索,我想我会将查询参数散列成一个唯一的字符串,用于每个查询的缓存键。这是我迄今为止尝试过的方法:
- 创建一个包含参数键值对(参数名称、参数值)的结构。
- 使用 SerializeJSON() 将 Struct 转换为字符串。
- 使用 Hash() 对字符串进行散列。
这种方法有意义吗?我想知道其他人是如何处理缓存密钥生成的。此外,“MD5”算法是否足以满足此目的,它会保证唯一的密钥生成,还是我需要使用“SHA”?