- 进程内存储方式,不支持夸进程通信
- 永驻内存的,不是单请求生命周期
- 超高性能define函数,进城周期内复用
boolean inproc_set(string $key, mixed $value [, int $expire = 0])
- key
存储使用的key值 string类型
- value
存储的内容
- expire
过期时间 默认是永久保存
bool类型 成功返回true 失败返回false
- 不设值过期时间
var_dump(inproc_set('inproc_set', 'inproc_set'));
var_dump(inproc_get('inproc_set'));
//输出
bool(true)
string(16) "inproc_set"
- 设置过期时间
var_dump(inproc_set('inproc_set', 'inproc_set', 5));
var_dump(inproc_get('inproc_set'));
sleep(6);
var_dump(inproc_get('inproc_set'));
//输出
bool(true)
string(16) "inproc_set"
bool(false)
boolean inproc_inc(string $key, int $step)
- key
存储使用的key值 string类型
- step
每次的增加值 int类型
bool类型 成功返回true 失败返回false
var_dump(inproc_inc('inproc_inc', 10));
var_dump(inproc_inc('inproc_inc', 10));
var_dump(inproc_inc('inproc_inc', 1));
var_dump(inproc_get('inproc_inc'));
bool(true)
bool(true)
bool(true)
int(21)
mixed inproc_get(string $key)
- key
存储使用的key值 string类型
inproc_inc 存入的值会返回 int 类型
没有查询到key值会返回 false
//inproc_inc
inproc_inc('inproc_inc', 10);
var_dump(inproc_get('inproc_inc'));
//inproc_set
inproc_set('inproc_set', 'inproc_set', 5);
var_dump(inproc_get('inproc_set'));
//no key
var_dump(inproc_get('inproc_get'));
int(10)
string(16) "inproc_set"
bool(false)
boolean inproc_del(string $key)
- key
存储使用的key值 string类型
删除成功返回 true
删除失败返回 false
inproc_inc('inproc_inc', 10);
var_dump(inproc_del('inproc_inc'));
bool(true)
boolean inproc_exists(string $key)
- key
存储使用的key值 string类型
存在返回 true
不存在返回 false
inproc_set('inproc_set', 10);
var_dump(inproc_exists('inproc_set'));
bool(true)
boolean inproc_define(string $key, mixed $value)
注意,inproc_define定义常量后,如果要更新,必须重启php-fpm才能生效!!! 务必注意!!!
- key
存储使用的key值 string类型
- value
存储的内容
bool类型 成功返回true 失败返回false
$key1 = __FILE__."1";
if(!defined($key1)){
inproc_define($key1, true);
for($i=0; $i<1000; $i++){
$key = "key$i";
inproc_define($key, "val$i");
//类似的define($key, "val$i")
}
}
var_dump(key100);
输出:
string(6) "val100"
//inproc
//插入100w条数据=0.21569800376892
//查找100w条数据=0.14358401298523
//apcu
//插入100w条数据=0.58673405647278
//查找100w条数据=0.29949307441711
///////a.php
$key1 = __FILE__."1";
if(!defined($key1)){
inproc_define($key1, true);
for($i=0; $i<1000; $i++){
$key = "key$i";
inproc_define($key, "val$i");
}
}
///////b.php
$key1 = __FILE__."1";
if(!defined($key1)){
define($key1, true);
for($i=0; $i<1000; $i++){
$key = "key$i";
define($key, "val$i");
}
}
//inproc_define
ab -n1000 -c2 -k "http://192.168.98.131/a2.php"
Total transferred: 181000 bytes
HTML transferred: 19000 bytes
Requests per second: 2120.27 [#/sec] (mean)
Time per request: 0.943 [ms] (mean)
Time per request: 0.472 [ms] (mean, across all concurrent requests)
Transfer rate: 374.78 [Kbytes/sec] received
//php define
Total transferred: 181000 bytes
HTML transferred: 19000 bytes
Requests per second: 550.68 [#/sec] (mean)
Time per request: 3.632 [ms] (mean)
Time per request: 1.816 [ms] (mean, across all concurrent requests)
Transfer rate: 97.34 [Kbytes/sec] received