【问题标题】:Cakephp 3 Cache::deleteMany() wild card matching?Cakephp 3 Cache::deleteMany() 通配符匹配?
【发布时间】:2016-12-24 17:04:48
【问题描述】:

有没有办法使用 Cache::deleteMany() 函数根据通配符删除缓存文件。

例如,我想删除一个名为 posts_2_20160801 的缓存文件,其中第一个数字是 user_id,数字字符串是日期。所以这个缓存文件包含了用户在给定日期之前的所有帖子。

所以我希望能够删除 user_id 的缓存文件。由于日期几乎可以是任何我需要通配符的东西。

类似Cache::deleteMany(['posts_2*']);

有没有办法做到这一点,还是我想错了。

【问题讨论】:

    标签: php cakephp caching


    【解决方案1】:

    我不知道memcached,但是File和Redis引擎不支持这种删除缓存的方法。

    我的解决方案是创建一个类来扩展所需的 Cake 缓存引擎类(如 RedisEngineFileEngine)并覆盖 deleteMany 函数,因此当传递字符串而不是数组时,它会执行通配符搜索并返回所有键,然后将返回的键数组传递给父函数。

    我知道File 引擎和Redis 引擎可能需要大量编码,并且必须非常小心地完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      相关资源
      最近更新 更多