所謂內(nèi)存共享:就是多個(gè)應(yīng)用程序公用一個(gè)內(nèi)存段,在A程序中可以獲取B程序存儲(chǔ)在這個(gè)內(nèi)存段的數(shù)據(jù),也就是數(shù)據(jù)共享。
創(chuàng)新互聯(lián)公司自2013年起,先為阿克塞哈薩克族自治等服務(wù)建站,阿克塞哈薩克族自治等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為阿克塞哈薩克族自治企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
shmop是PHP提供的函數(shù)集,在配置PHP的時(shí)候使用 -enable-shmop后,就可以使用這個(gè)函數(shù)集提供的函數(shù),
shmop對(duì)LINUX更加友好,而對(duì)于WINDOWS來(lái)說(shuō)就不怎樣了,不支持CGI和CLI模式~有點(diǎn)尷尬。
來(lái)說(shuō)說(shuō)他提供的一些函數(shù):
ftok函數(shù):生成一個(gè)數(shù)字或叫做鍵或key。$key = ftok(fileName, mode); 一般情況下,這個(gè)fileName可以直接使用__FILE__來(lái)指向當(dāng)前文件,mode則比較靈活,是一個(gè)字符串類型,比如:"a", "b", "p"
shmop_open($key, $mode, $permission, $size); 開(kāi)啟一個(gè)內(nèi)存段
這里的key就是ftok生成的哪個(gè)key,$mode是打開(kāi)這個(gè)內(nèi)存段的模式。包括:
a: 它允許訪問(wèn)只讀的內(nèi)存段
w: 它允許訪問(wèn)可讀寫(xiě)的內(nèi)存段
c: 創(chuàng)建一個(gè)新的內(nèi)存段,如果已經(jīng)存在,嘗試讀寫(xiě)
n: 創(chuàng)建一個(gè)新的內(nèi)存段,如果已經(jīng)存在,則失敗
$size指的是申明的這個(gè)內(nèi)存段的大小,字節(jié)為單位、
shmop_open返回一個(gè)ID,這個(gè)ID是內(nèi)存段ID,可以ftok生成的key不是一回事。注意!
shmop_write($id, $stringData, $offset);
往id這個(gè)內(nèi)存段中寫(xiě)入字符串?dāng)?shù)據(jù),從$offset的位置開(kāi)始,offset一般會(huì)設(shè)置為0, 注意,這里存儲(chǔ)只能是字符串類型。注意轉(zhuǎn)換。
shmop_read($id, $offset, $limit);
讀取數(shù)據(jù),從$offset開(kāi)始讀取$limit個(gè)字符。
shmop_size($id);
獲取總共存儲(chǔ)了多少個(gè)字節(jié)。
shmop_delete($id)
清空這個(gè)內(nèi)存段的內(nèi)容
shmop_close($id)
關(guān)閉這個(gè)內(nèi)存端,也叫做內(nèi)存回收~
好了,介紹了這些基礎(chǔ)方法,大家應(yīng)該都嘗試過(guò)了,我們應(yīng)該將這些內(nèi)容進(jìn)行一個(gè)封裝,于是我對(duì)它進(jìn)行了封裝,做成了一個(gè)類,也方便了以后的擴(kuò)展
github地址:
https://github.com/toulen/Tshmop
composer安裝:
composer require toulen/tshmop:1.0