如何使用 Memchached 后端和 Zend Framework 有选择地清除缓存(使用标签或其他选项)

2024-04-14

我们在 Web 项目中使用 Memcached 和 Zend Framework。现在,我们需要使用指定的标签有选择地清理缓存Zend_Cache API http://framework.zend.com/manual/1.10/en/zend.cache.theory.html#zend.cache.tags.

很遗憾,memcached 不支持标签 http://framework.zend.com/manual/1.10/en/zend.cache.backends.html#zend.cache.backends.memcached.

我找到了这些解决方法:

  • Memcached 标签项目 http://code.google.com/p/memcached-tag/。有人测试过吗?如何用Zend来实现呢?
  • 使用通配符,例如这个问题 https://stackoverflow.com/questions/1595904/memcache-and-wildcards,但它似乎有点令人困惑,不太透明,并且更难用 Zend 实现。
  • Use 这个实现 http://framework.zend.com/issues/browse/ZF-4253 or this one https://github.com/bigwhoop/taggable-zend-memcached-backend/blob/master/src/TrekkSoft/Cache/TaggableZendMemcachedBackend.php,了解 Memcached 中支持标签的缺点。
  • 还有其他选择吗?

提前致谢


你说得对。 Memcache 不支持标签。

您可以使用另一个键值来实现内存缓存的标记。

EX :

$this->objCache->save($arrResults, $strKey,array($strMyTag),$intCacheTime) // note : array($strMyTag) don't work for Memcache

MemcacheTag::setTag($strKey, $strMyTag) // our work around

关于setTag方法和MemcacheTag:

function setTag($strKey,$strTag){

    $arrKey  = $cacheOjb->get($strTag);

    $arrKey[]= $strKey; 

}

function deleteCacheWithTag($strTag){

    $arrKey  = $cacheOjb->get($strTag);

    foreach ($arrKey as $strKey){

       $objCache->delete($strKey);

    }

}

这个解决方法非常简单,并且适用于我的项目。

*注意:这些代码需要一些修改,抱歉匆忙发布

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Memchached 后端和 Zend Framework 有选择地清除缓存(使用标签或其他选项) 的相关文章

随机推荐

  • ASP.NET MVC - 值类型的自定义验证消息

    当我使用 UpdateModel 或 TryUpdateModel 时 MVC 框架足够智能 可以知道您是否尝试将 null 传递到值类型中 例如 用户忘记填写所需的生日字段 不幸的是 我不知道如何覆盖默认消息 需要一个值 在摘要中输入更有
  • 迄今为止的 Groovy 字符串

    我正在用 Groovy 编码 我目前正在尝试将我拥有的字符串转换为日期 而不必做任何过于繁琐的事情 String theDate 28 09 2010 16 02 43 def newdate new Date parse d M yyyy
  • 从 SHA256 解密

    我有将字符串加密为 sha256 并紧邻 base64 的代码 public static string Sha256encrypt string phrase UTF8Encoding encoder new UTF8Encoding S
  • 如何禁用可创建的反应选择组件?

    我不知道使用什么道具来禁用可创建的 React select 组件 它只是丢失了吗 我尝试了常规的 isDisabled 属性但没有成功
  • 查找两个数字之间素数个数的快速算法

    我的问题简化为找到两个给定数字之间的素数数量 我的范围可以大到1 to 1000 因此我需要一些数学优化 显然 在这种情况下 筛法会太慢 是否有任何可以应用的数学优化 例如 采用这个大空间的较小子集并对其余数字进行推断 P S 看起来我可能
  • 如何使用 PHP 检查 MySQL 表是否存在?

    理论上听起来很简单 我已经做了相当多的研究 但很难弄清楚这一点 如何检查 MySQL 表是否存在以及它是否执行某些操作 我想一个简单的 php if else 语句可以解决这个问题 有没有办法做到这一点 这就是我对 cwallenpoole
  • 使用 ICertAdmin2::RevokeCertificate 方法撤销 C# 中的证书

    如何将 certadm dll 导入托管项目并使用 RevokeCertificate 方法 我尝试将其添加为引用 但出现错误 因为它不是程序集或 COM 对象 有任何想法吗 UPDATE 我已经尝试过了regsvr32 c certadm
  • 使用 php 获取服务器内存

    有没有办法用 php 知道服务器 linux 发行版 中的可用内存 不使用 linux 命令 编辑 抱歉 目标是了解特定服务器的服务器 虚拟机中可用的内存 即使该内存是共享的 如果你知道这段代码只能在Linux下运行 你可以使用特殊的 pr
  • SBStatusBarController 实例

    有人可以帮我提供如何获取 SBStatusBarController 实例的小样本吗 我查看了很多论坛和源代码 但它对我不起作用 谢谢 好的 我已经找到了如何在没有 SpringBoard 的情况下使用合法手段显示双高状态栏 如通话中状态栏
  • 如何使用 php 从 json 键值中删除所有双引号?

    我得到了一个json数据 我想从 json 键中删除所有双引号 以便能够解析我想要的数据 如果任何键上没有双引号 我当前的代码运行良好 但一旦键上有双引号 那么我的代码就不会解析 json 数据 谁能告诉我如何解决这个问题 谢谢 code
  • 快速验证、自定义异步检查

    因此 我对此进行了大量研究 但遇到了一些问题 router post register async req res gt const newUser await usersDb Define the user const email req
  • 为什么 List listOfArrays = Arrays.asList(new Integer[]{1, 2}) 无法编译? [复制]

    这个问题在这里已经有答案了 1 OK List
  • [outlook]:通过node-imap连接时登录失败

    我试图在本地主机中连接 Imap 但得到如下调试日志 但用户名和密码是正确的 我可以通过网络界面使用登录凭据进行连接 lt CAPABILITY IMAP4 IMAP4rev1 AUTH PLAIN AUTH XOAUTH2 SASL IR
  • 有没有办法判断 JFrame 是否“最大化”(MS Windows)[重复]

    这个问题在这里已经有答案了 我一直在OS X上进行Java应用程序 并没有机会在不同的地方进行充分的测试 有2种不同的JFrames 第二个加载完全代替第一个 因此需要将其大小和位置设置为与第一个相同 这工作正常 但我注意到很多 Windo
  • 如何将使用三元运算符的 C++ 代码移植到 Rust?

    如何将此 C 代码移植到 Rust auto sgnR R gt 0 1 1 我看过一些例子match关键字 但我不明白它是如何工作的 Rust 没有三元运算符 因为不需要它 几乎所有东西都会计算出某个值 并且if else表达式也不例外
  • 访问修改后的关闭

    string files new string 2 files 0 ThinkFarAhead Example Settings Configuration Local xml files 1 ThinkFarAhead Example S
  • 什么是 PHP 匿名函数?

    PHP 中的匿名函数是什么 请给我一个简单的例子好吗 PHP net 有一个关于匿名函数 http php net manual en functions anonymous php在维基百科上你可以读到匿名函数 http en wikip
  • 使图表 js 中的标签响应式

    我很难使 y 轴上的标签响应 我希望标签移动到多行 并在空间不足时具有响应式字体大小 我正在使用 Chart js 数据标签库进行标签在水平条形图的顶部 由于外部图表容器 标签也被隐藏 var chart new Chart ctx typ
  • Redis 块推送直到列表有空位

    我正在寻找类似的东西BLPUSH该命令将阻塞 直到列表的长度低于指定值max size 目的是防止生产者运行速度快于消费者时列表无限增长 功能与 python 非常相似Queue put https docs python org 3 li
  • 如何使用 Memchached 后端和 Zend Framework 有选择地清除缓存(使用标签或其他选项)

    我们在 Web 项目中使用 Memcached 和 Zend Framework 现在 我们需要使用指定的标签有选择地清理缓存Zend Cache API http framework zend com manual 1 10 en zen