能直接放在内存中每次请求都拿到那种
例如本次请求赋值了,下次请求取出来还是上次请求的值,webman本身是直接常驻内存的,这种有办法实现吗
https://www.workerman.net/doc/workerman/faq/persistent-data-and-resources.html
使用全局变量、类的静态成员、或者函数内静态变量都可以实现存储全局变量。 例如: app/functions.php 里加一个函数
app/functions.php
function cache($key, $value = null) { static $cache = []; if ($value === null) { return $cache[$key] ?? null; } $cache[$key] = $value; }
存储数据的时候调用 cache('my_key', 'my value');,读取数据的时候直接用 cache('my_key'); 一定程度上可以替代redis缓存的功能,但是性能比redis高几个数量级。
cache('my_key', 'my value');
cache('my_key');
这个只能是当前进程能使用吧,应该是每个work进程都维护一个自己的全局变量吗?
其实还有一个邪道, /dev/shm,读写操作全部在内存中完成,无IO消耗,性能极高,就是要注意并发对写锁的问题,还有内存大小
对,当前进程。用得高级点可以里面加个redis,cache里没有数据读redis,然后存储到cache数组里。以后访问都是内存访问。
shm里面不行,要转换数据类型耗时间。你存一个大数组试试。卡死你
没遇到过
用过webman以后我是看着laravel,tp,yii就头疼,哎感觉这些框架太难受了
一堆繁琐的设置,配置,队列也不好处理,还不带守护进程,关键是性能还慢的一比
你错了
https://www.workerman.net/doc/workerman/faq/persistent-data-and-resources.html
使用全局变量、类的静态成员、或者函数内静态变量都可以实现存储全局变量。
例如:
app/functions.php
里加一个函数存储数据的时候调用
cache('my_key', 'my value');
,读取数据的时候直接用cache('my_key');
一定程度上可以替代redis缓存的功能,但是性能比redis高几个数量级。
这个只能是当前进程能使用吧,应该是每个work进程都维护一个自己的全局变量吗?
其实还有一个邪道, /dev/shm,读写操作全部在内存中完成,无IO消耗,性能极高,就是要注意并发对写锁的问题,还有内存大小
对,当前进程。用得高级点可以里面加个redis,cache里没有数据读redis,然后存储到cache数组里。以后访问都是内存访问。
shm里面不行,要转换数据类型耗时间。你存一个大数组试试。卡死你
没遇到过
用过webman以后我是看着laravel,tp,yii就头疼,哎感觉这些框架太难受了
一堆繁琐的设置,配置,队列也不好处理,还不带守护进程,关键是性能还慢的一比
你错了