redis管理key任意分割符层次算法

 简单研究了下市面上Redis管理器key分隔符算法的时间下面分享下.效果 下面展示了其他redis管理器的效果和我们要实现的目标效果常见效果目标实现效果实现算法可以看到上面通过冒号分割符将 key 分割成层级目录方便管理查看.实现步骤scan获取redis指定数量key循环遍历所有key指定转换分割符号 : 或者其他符号为数组判断数组是否有多个只存在一个则直接赋值键存在多个则赋值引用类型到临时变量然后循环赋值键到临时变量 难点在于 & 引用类型的理解实现算法$iterator = null; $all_keys = $redis->scan($iterator, $search, 1000); $keys = []; foreach ($all_keys as $datum) { $key_array = explode(':', $datum); if (count($key_array) > 1) { $keys_temp = &$keys; foreach ($key_array ...

PHP,解决方案 2022-10-28 PM 315次 0条

php中php-fpm fast-cgi cgi 的关系

cgicgi 是一个协议,跟进程无关,比如说 web server (nginx) 接收到一个 php 的网络请求,此时 nginx 需要根据配置文件,去找 php 的解析器,经过简单处理,将请求的一些信息交给 php 解析器,此时就规定了要传那些协议,还有以什么样的格式传输,这个标准就叫做 cgi 协议php 解释是实现了这个协议的 cgi 程序,nginx 将这些内容交给 php 解释器后,读取 php.ini 等初始化环境,然后处理数据,最终转换成符合这个协议的数据流交给 nginx, 最终返回给浏览器fast-cgi fast-cgi 管理 cgi 程序fast-cgi 是一个常驻进程的程序,与 cgi 为每个 web 请求建立一个进程不同的是,fast-cgi 在 web server 启动的时候会同时启动多个 cgi 程序,这样当进来动态页面请求的时候,就可以将数据流交由 fast-cgi 进程管理器,这样做的好处就是 web server 可以处理更多的请求,并且解析 php.ini 这些工作只进行一次,提高响应速度如图所示php-fpm php-fpm 管理 cg...

PHP 2022-10-27 PM 289次 0条

代码参数注释大全

 本文主要记录代码参数注释大全方便参考查看标明作者@author@author 张三 提供给第三方使用的接口@api@api xxxx参数@param @param array 参数名 描述返回值@return@return string待办@todo@todo 这里是待办版本号@version@version 1.0.0文档继承@inheritdoc类属性@property@property array $auth 描述只读属性@property-read@property-read array $auth 描述只写属性@property-write@property-write array $auth 描述常量@const@const APP过期方法@deprecated示例@example标识类是终态, 禁止派生@final指明引用的全局变量@global标识类、方法、属性是静态的@static忽略@ignore限内部使用@internal协议@license@license MIT链接,引用文档等@link@link http://www.xxx...

PHP,其他 2022-09-02 PM 338次 0条

使用composer更新引用包404问题2022年3月29号

 就在 2022年3月29号 我们使用 composer 来 require 使用第三方包或更新 composer包 会出现大面积404问题。异常信息 [Composer\Downloader\TransportException] The "https://mirrors.aliyun.com/composer/p/provider-2017%2477f874a1ea778d1061dc0376ee5bb78089142e6d0933b308200c290eb53e7af4.json" f ile could not be downloaded (HTTP/1.1 404 Not Found) 解决composer包404问题 原因是因为composer已经逐渐废弃v1版本,我们只需要将composer升级到v2版本即可解决。composer升级到2.x版本和降级

PHP,解决方案 2022-03-30 AM 975次 0条

swoole 处理 has already been bound to another coroutine xxx异常

 分享下之前在使用swoole开发项目时遇到的swoole协程问题。swoole 异常信息 P Fatal error: Uncaught Swoole\Error: Socket#37 has already been bound xxxPHP Fatal error: Uncaught Swoole\Error: Socket#37 has already been bound to another coroutine#19895, reading of the same socket in coroutine#19896 at the same time is not allowed in /www/wwwroot/default/vendor/xxx.php:34 Stack trace: xxxxxxxxxx问题分析 从日志看像是同一个Socket链接不能同时存在于不同的协程里面,也就是不能夸协程使用mysql,redis同一条连接对象。问题处理 知道问题就好处理了可以使用swoole channel 实现一个连接池如下:Channelprivate static ...

PHP,解决方案 2022-02-22 PM 1267次 0条

解决使用idea,phpstorm等开发工具git自动变为修改状态

 本文记录解决使用idea,phpstorm等开发工具在windows下提交代码后在linux下同样使用相同工具代码全部变为git修改状态如图。 通过上面的图片我们可以看到标记为修改状态的代码文件什么都没有修改但是因为跨平台出现了git修改状态,经过排查发现是 windows 和 linux 下换行转换的问题。windows下默认idea换行符 windows下默认换行符为 CRLF 格式linux下默认默认idea换行符 windows下换行符为 LF 格式解决跨平台默认idea换行符问题 既然我们找到了问题那么就好解决了我们只需要配置下git拉去或者提交代码时候保持原样或者指定格式即可。提交时转换为 LF 检出时转换为 CRLF (推荐windows)git config --global core.autocrlf true提交时转换为 LF 检出时不转换(推荐unix/mac)git config --global core.autocrlf input提交检出均不转换换行符git config --global core.autocrlf false拒绝提交包含混合换行...

PHP,Linux,解决方案 2022-01-22 AM 1063次 0条

phpstorm配置使用comoposer远程php版本

 在开发环境中我们可以通过 phpstorm 配置使用 comoposer 远程虚拟机的指定版本 php 。配置本地文件和虚拟机文件共享 例如本地 E:\wwwroot = /www/wwwroot使用安装,更新,显示日志 打开compose.json文件这个时候顶部会显示三个可点击文字 install/update/show log 。清理composer缓存 点击 clear Cache 清理 composer 缓存诊断环境 点击 diagnose 诊断 composer 环境模拟更新包 点击 simulate update 模拟更新 composer 包更新composer版本 点击 self-update 更新 composer 版本测试运行composer更新后运行的脚本 配置 composer 静默运行 --no-interaction

PHP,软件工具,Linux 2022-01-04 PM 826次 0条

phpstorm常用扩展插件

 记录分享常用的phpstorm常用优秀扩展插件。查看PHP中文文档Chinese PHP Documentenv 语法高亮.env files supportGit辅助工具GitToolBox无限重置试用时长IDE Eval Reset时间戳/日期格式互转Magic Time代码优化检查Php Inspections (EA Extended)tp5框架辅助Thinkphp5 Plugin翻译工具TranslationMarkdown解析工具MarkdownIDEA中文语言包chineseIDEA美化主题Material Theme UIcomposer自动检查PHP composer.json supportphp工具箱PHP Toolbox块美化Rainbow Brackets

PHP,软件工具,Linux 2021-12-09 PM 1107次 0条

phpstorm常用设置

 我们可以通过一下 phpstorm常用设置 来增强或者统一团队协作。启动设置 通过启动配置我们可以配置每次启动都可以按照个人喜好进行快捷启动phpstorm。代码格式设置 通过配置代码格式我们可以统一美化个人或者团队代码格式,使代码更加美观。基本设置注释前加空格效果文档,参数对齐效果数组last元素追加逗号ssh配置 通过配置ssh我们可以很方便的在idea内使用虚拟机或者远程服务器等等。ssh配置连接ssh选中刚刚添加的ssh即可然后直接只是用就可以了

PHP,软件工具,Linux 2021-12-04 PM 454次 0条

解决composer内存超出allowedmemorysizeof

 我们在使用 composer update xxx 更新 php 包时或者使用 composer require xxx 下载 php 包时,当composer包过大或者电脑内存太小的时候会就出现内存超出,内存溢出异常 Allowed memory size of xxx 如下PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line ...

PHP,Linux,解决方案 2021-12-01 AM 828次 0条