Play框架缓存:删除与正则表达式匹配的元素

4
我想知道是否有一种方法可以使用正则表达式从Play缓存中删除元素。
我正在使用play 2.2.x,并按照以下模式存储缓存中的元素:
collectionName.identifier

有没有一种方法可以使用正则表达式匹配键来使缓存过期,例如:

collectionName.[a-zA-Z0-9]+

我想这样做的原因是有时候我会更新数据库中匹配某些字段的元素,但我无法确定哪些元素已被更新。

如果在ReactiveMongo中有一种获取已更新对象标识符的方法,那将对我很有帮助。

感谢任何帮助。

1个回答

3
Play的缓存使用Ehcache。您需要直接使用Ehcache。
1. 使用`app.plugin[EhCachePlugin].cache`访问底层的`Ehcache`对象(请参阅插件源代码)。 2. 然后调用`Ehcache`对象的getKeys方法以获取缓存条目键列表。 3. 然后自行匹配键并删除与您的正则表达式匹配的任何条目。
顺便说一下,最好在更新数据库时更新或删除缓存项。

是的,这正是我想做的(在更新数据库后刷新缓存),我会尝试您的答案并告诉您,谢谢。 - Bruno Follon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接