Yac是鳥(niǎo)哥為php開(kāi)發(fā)的一個(gè)緩存user data的擴(kuò)展
是基于如下幾點(diǎn)經(jīng)驗(yàn)假設(shè)設(shè)計(jì)的:
- 對(duì)于一個(gè)應(yīng)用來(lái)說(shuō), 同名的Cache鍵, 對(duì)應(yīng)的Value, 大小幾乎相當(dāng).
- 不同的鍵名的個(gè)數(shù)是有限的.
- Cache的讀的次數(shù), 遠(yuǎn)遠(yuǎn)大于寫(xiě)的次數(shù).
- Cache不是數(shù)據(jù)庫(kù), 即使Cache失效也不會(huì)帶來(lái)致命錯(cuò)誤。
特點(diǎn):
- 無(wú)鎖共享內(nèi)存:無(wú)讀鎖,取出數(shù)據(jù)后進(jìn)行數(shù)據(jù)校驗(yàn),校驗(yàn)規(guī)則是“對(duì)key中存儲(chǔ)的固定size的值進(jìn)行了CRC的計(jì)算,然后把key中附帶存儲(chǔ)的crc信息和內(nèi)容計(jì)算出來(lái)的crc信息進(jìn)行校驗(yàn)”,這實(shí)際上是以CPU來(lái)?yè)Q鎖的方式。
- php多進(jìn)程共享內(nèi)存
- 數(shù)據(jù)存儲(chǔ)在本地內(nèi)存,不像memcache、redis需要連接存儲(chǔ)到遠(yuǎn)程