




















Yac (Yet Another cache)也是之前我在微博的时候开发的一个为PHP使用的,Lock-free, Shared Memory, User Data Cache,用来替代当时微博在PHP机器上装的本地Memcache和APC,因为当时的需求特点,最初做了完全无锁的设计,但是这样有一个隐患就是用户有可能获得“错误”的数据,虽然之前的测试概率非常非常低。 关于Yac的设计,可以参考我7年前写的Yac (Yet Another Cache) - 无锁共享内存Cache。
作为我的Ya全家桶的重要一员, 在我优化完一轮Yaf, Yar, Yaconf以后,Yac当然也不能少了。
2.1.0主要做了如下的优化:
当然,这么做以后,会带来一个副作用, 为了不让cas一直死等,我设置了一定的尝试次数,如果失败就返回。 那就可能带来一个问题就是Yac->set可能会失败,所以如果你需要对于一些特别重要的内容,需要保证它一定能被set,那你可能需要:
<?php
while(!($yac->set("important", "value")));
?>
经过这次全新的升级,Yac的稳定性会得到很大的提升,可以用来在PHP中做一些跨PHP进程的内容交换和Cache。
Yac 2.1 已经发布: Yac At PECL
使用文档以及使用中有任何问题,来Github: Yac At Github
enjoy!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。