【发布时间】:2018-04-11 01:21:21
【问题描述】:
我想根据键的前缀清除缓存。例如,我有一个缓存的两个对象的复合键,例如({#obj1,#obj2})。在清除缓存时,我想仅基于 obj1 值进行清除。就像使用键前缀 obj1 清除缓存中的所有内容一样。有可能吗?
【问题讨论】:
我想根据键的前缀清除缓存。例如,我有一个缓存的两个对象的复合键,例如({#obj1,#obj2})。在清除缓存时,我想仅基于 obj1 值进行清除。就像使用键前缀 obj1 清除缓存中的所有内容一样。有可能吗?
【问题讨论】:
除了遍历整个缓存的迭代器,没有。另一种解决方案是为每个前缀创建一个缓存。
最后,另一种解决方案是使用存储,它允许查询并在辅助字段上建立索引。这将允许您根据前缀字段清除项目。你不会得到缓存的其他好处(驱逐、过期),但它会做你想做的事。
【讨论】: