【发布时间】:2011-10-22 07:29:59
【问题描述】:
我已经内置到我们的 ORM 层对象缓存中。基本上,SQL 查询的哈希用作键,值包含数据库结果集中的对象集合。但是,如果结果集中的对象之一被更新,缓存的结果集中不包括更新的对象,这会产生问题。没有写一致性。我将如何实现写一致性?
谢谢
更新:目前我有一个 ObjectWatcher 类来处理缓存的对象及其键。对象使用可检索的键进行缓存,因此对于 Person 类它是 Person.101 例如。 SQL 查询是散列的,键映射到一个依赖对象,其中包含依赖对象的列表。所以SELECT * FROM person 可能会从 APC 返回一个 Dependency 对象,该对象映射到 Person.101 和 Person.102,结果集合是从这个 Dependency 对象构建的。这适用于单个对象的更新。因此,如果我更新 Person.101 并将新的更新对象放入 APC 以覆盖旧的对象,则当运行较旧的查询时,更新的对象将被放入该结果集中,这可能是不正确的。我需要一种方法来清除内存中的对象,以及包含对更新对象的引用的所有 Dependency 对象。在 APC 中是否可以搜索包含或过滤键和值的键或值?
【问题讨论】: