【问题标题】:Play Framework cache Remove elements matching regex播放框架缓存删除匹配正则表达式的元素
【发布时间】:2015-05-06 12:55:32
【问题描述】:

我想知道是否有办法使用正则表达式从 Play 缓存中删除元素。

我正在使用 play 2.2.x,并且我正在按照以下模式将元素存储在缓存中:

collectionName.identifier

有没有办法使用正则表达式匹配键来使缓存过期,例如:

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

我之所以要这样做是因为有时我会更新 db 中匹配某些字段的元素,而我无法真正知道哪些元素被更新了。

如果 ReactiveMongo 有办法获取更新的对象标识符,那也会对我有所帮助。

感谢您的帮助。

【问题讨论】:

    标签: regex scala playframework ehcache reactivemongo


    【解决方案1】:

    Play 的缓存在下面使用 Ehcache。您需要直接使用 Ehcache。

    1. 使用app.plugin[EhCachePlugin].cache 访问底层Ehcache 对象(参见plugin source)。

    2. 然后调用Ehcache对象的getKeys method获取缓存入口键列表。

    3. 然后自己匹配键并删除任何与您的正则表达式匹配的条目。

    顺便说一句,如果在更新数据库时更新或删除缓存中的项目会更好。

    【讨论】:

    • 是的,这正是我想要做的(在我更新数据库后刷新缓存),我会尝试你的答案并让你知道,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2011-07-08
    • 1970-01-01
    相关资源
    最近更新 更多