您好,登錄后才能下訂單哦!
所謂內存共享:就是多個應用程序公用一個內存段,在A程序中可以獲取B程序存儲在這個內存段的數據,也就是數據共享。
shmop是PHP提供的函數集,在配置PHP的時候使用 -enable-shmop后,就可以使用這個函數集提供的函數,
shmop對LINUX更加友好,而對于WINDOWS來說就不怎樣了,不支持CGI和CLI模式~有點尷尬。
來說說他提供的一些函數:
ftok函數:生成一個數字或叫做鍵或key。$key = ftok(fileName, mode); 一般情況下,這個fileName可以直接使用__FILE__來指向當前文件,mode則比較靈活,是一個字符串類型,比如:"a", "b", "p"
shmop_open($key, $mode, $permission, $size); 開啟一個內存段
這里的key就是ftok生成的哪個key,$mode是打開這個內存段的模式。包括:
a: 它允許訪問只讀的內存段
w: 它允許訪問可讀寫的內存段
c: 創建一個新的內存段,如果已經存在,嘗試讀寫
n: 創建一個新的內存段,如果已經存在,則失敗
$size指的是申明的這個內存段的大小,字節為單位、
shmop_open返回一個ID,這個ID是內存段ID,可以ftok生成的key不是一回事。注意!
shmop_write($id, $stringData, $offset);
往id這個內存段中寫入字符串數據,從$offset的位置開始,offset一般會設置為0, 注意,這里存儲只能是字符串類型。注意轉換。
shmop_read($id, $offset, $limit);
讀取數據,從$offset開始讀取$limit個字符。
shmop_size($id);
獲取總共存儲了多少個字節。
shmop_delete($id)
清空這個內存段的內容
shmop_close($id)
關閉這個內存端,也叫做內存回收~
好了,介紹了這些基礎方法,大家應該都嘗試過了,我們應該將這些內容進行一個封裝,于是我對它進行了封裝,做成了一個類,也方便了以后的擴展
github地址:
https://github.com/toulen/Tshmop
composer安裝:
composer require toulen/tshmop:1.0
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。