我正在尝试创建一个对象缓存系统,我正在使用的languange是freepascal,但是我认为其他语言也会发生此问题。
我面临的问题是当我从缓存中删除一个对象并且该对象被缓存中的另一个对象引用时,所以我最终将获得无效的引用。
我知道唯一的方法是在我要从缓存中删除引用时清除其余对象中的引用。当我在chache中有几个此类交叉引用时,这并不是一件难事。
但是,当系统增长时,它变成了一场噩梦,那么我该如何跟踪那些正在引用的对象,而这些对象正是我要从缓存中删除的对象,并清理掉这些无效的引用?
是否有一些众所周知的技术可以做到这一点,而无需在缓存中进行大量查找?
先谢谢了。