【发布时间】:2011-04-18 17:43:56
【问题描述】:
- 我有一堆对象都属于一个类,我想将它们存储在网络缓存中。
- 可能有几百个这样的对象。
- 我希望对象有自己的到期时间,并分别从缓存中到期。
- 我希望能够知道这些对象中有多少在缓存中,并单独迭代这些对象(不管缓存中的其他类型如何)。
最初我考虑在缓存中存储一个通用集合,并在需要时将对象插入到集合中。这很好,很整洁,并且会使迭代变得容易。但是,这不会允许每个对象单独过期(整个集合都会过期)。我想在这种情况下我必须创建自己的过期机制和“垃圾收集”。
我的第二个想法是将每个对象存储为缓存的一等公民。这显然会允许它们单独过期,但似乎有点混乱。如何迭代它们?也许只是遍历整个缓存,并寻找正确的类型(不确定这是否可行),或者使用键前缀。我想这将是最简单的,但似乎并不理想。
我想我真正想要的是一种将缓存项组合在一起的方法,但让它们保留缓存项。我想像子缓存之类的东西。
谁能建议最好的前进方式?
【问题讨论】: