开发 Swoole 服务 使用端口问题
最近开发新项目 服务端口5w 起 , 但是总是出现端口被占用… 我一直都用 netstat -tunple |grep -i 56904 检索 但并没有搜索到. 找了运维同学看了下 使用 netstat -an |grep 56904 如上图 netstat -an |grep 56904 , 返回 ESTABLISHED, 破案了 在Linux上,有一个sysctl参数ip_local_port_range,可用于定义网络连接可用作其源(本地)端口的最小和最大端口的限制,同时适用于TCP和UDP连接。 我新增服务的端口,在ip_local_port_range区间端口内, 本机其他服务进程与其他网络服务构成建立网络连接. 端口我就用不了了. 自定义服务端口 不要在ip_local_port_range 范围内. 诶 问题比较低级, 收录下
Mysql 表中某字段所有值转换为小写(或大写)
代码如下: 转换为小写:UPDATE 表名 SET 列名= lower( 列名 ); 如果转换为大写:UPDATE 表名 SET 列名= UCASE( 列名 );
Redis持久化相关问题 ISCONF Redis is configured to save RDB snapshots
服务器抛错, redis 持久化出了问题. 抛错如下: Fatal error: Uncaught RedisException: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error 翻译: (错误)MISCONF Redis 已配置为保存 RDB 快照,但目前无法在磁盘上持久化。 可以修改数据集的命令被禁用,因为如果 RDB 快照失败(stop-wr...
Swoole 问题 asleep - deadlock 以及 HTTP -1 Unknown: Connect timeout! the server is not listening on the port or the network is missing!
问题代码 // 批量请求接口$responseList = SaberGM::list([ // 深度接口地址 'uri' => $urlList, // 代理列表 'proxy' => $proxyList,]); php swoole 版本 4.6.4 swooleSwoole => enabledAuthor => Swoole Team <team@swoole.com>Version => 4.6.4Built => Mar 11 2021 14:42:19coroutine => enabled with boost asm contexttrace_log => enabledepoll => enabledeventfd => enabledsignalfd => enabledcpu_affinity => enabledspinlock => enabledrwlock => enableds...
PHP 跟踪代码调用 `debug_backtrace`
在开发过程中,例如要修改别人开发的代码或调试出问题的代码,需要对代码流程一步步去跟踪,找到出问题的地方进行修改。如果有一个方法可以获取到某段代码是被哪个方法调用,并能一直回溯到最开始调用的地方(包括调用的文件,行数,参数等),这样就能很方便的定位到出问题的地方。 php的debug_backtrace方法可以对代码调用进行跟踪,方便调试代码。 debug_backtrace 方法说明产生一条回溯跟踪(backtrace) array debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] ) 参数 optionsDEBUG_BACKTRACE_PROVIDE_OBJECT 是否填充 “object” 的索引。 DEBUG_BACKTRACE_IGNORE_ARGS 是否忽略 “args” 的索引,包括所有的 function/method 的参数,能够节省内存开销。 limit这个参数能够用于限制返回堆栈帧的数量,默认为(limit=0),返回所有堆...
Mysql 中的 utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci
1.utf8与utf8mb4(utf8 most bytes 4)MySQL 5.5.3之后增加了utfmb4字符编码支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符最多使用四个字节存储字符utf8mb4是utf8的超集并完全兼容utf8,能够用四个字节存储更多的字符。 标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。MySQL里面实现的utf8最长使用3个字符,包含了大多数字符但并不是所有。例如emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。 2.字符集、连接字符集、排序字符集utf8mb4对应的排序字符集有utf8mb4_unicode_ci、utf8mb4_general_ci. utf8mb4_unicode_ci和utf8mb4_general_ci的对比: 准确性: utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序utf8mb4_general_ci没有实现Unicode排序规则,在遇到某些...
记一次MySQL迁移并从MySQL5.6升级到5.7后查询慢了几十倍的问题
起因因为生产环境数据量越来越大,客户越来越多,项目功能也越来越多,项目本身也越来越多,导致之前的服务器内存、硬盘都已经渐渐的不够用了,当时出现了2种解决方案,增加服务器配置和新购服务器,但是就算是新增硬盘,也需要对数据库进行迁移,所以就采用了新购服务器的方案,并且因为之前是高效云盘,出现过IO占满的情况,所以对于新购的服务器采用了SSD硬盘,理论上速度会飞起来了,实际上我在新服务器上安装MySQL5.7,因为听说MySQL5.7性能提升了N倍,还支持json(虽然对我们没什么用),但是毕竟MySQL8已经出来了,说明MySQL5.7也肯定稳定好了。so,就找了个夜深人静的晚上偷偷的吧数据库迁移过来了,然后开启慢查询日志,限制为5秒,于是开始各种测试,然后查看了一下慢查询日志,一堆慢查询日志,所以有了这篇文章,为什么会出现这么多慢查询,以及如何解决 开始排查将慢查询SQL拿出来,发现主要的慢查询SQL都是链表查询的语句,也就是说查询语句本身非常复杂,所以就把SQL语句放回之前的数据库执行,发现之前的数据库都是不到1秒就查询出来了,而在新的数据库上最慢能达到140多秒,这明显就不...
宽表为什么横行? SPL+DQL
宽表为什么横行?SPL+DQL的应用在大数据时代,数据量和数据复杂性都呈现爆发式增长。为了满足业务需求和分析要求,传统的关系型数据库模型已经难以胜任。在这种背景下,宽表(Wide Table)成为了一种流行的数据建模方式。本文将探讨宽表为什么横行,并介绍一种用于处理宽表的技术——SPL+DQL。 1. 宽表的概念宽表是指具有大量列的表结构,相对于传统的关系型数据库模型中的纵向表(Tall Table),宽表更加扁平化,将多个属性以列的形式存储在同一张表中。宽表的特点包括: 冗余数据:宽表中可能存在大量冗余数据,因为不同的行可能会拥有相同的属性列。 灵活查询:宽表的扁平结构使得查询更加方便。可以通过单个查询获取多个属性值,而不需要进行多表连接。 高度冗余:宽表的冗余数据可能导致存储空间的浪费,但在某些特定场景下,这种冗余可以提高查询性能。 2. 宽表的优势为什么宽表横行?宽表的设计有以下几个优势: 简化查询:宽表的扁平结构使得查询更加简单和高效。不需要进行多表连接,可以通过单个查询获取所需的属性值。 提高查询性能:宽表中的冗余数据可以减少查询时的数据访问量,从而提高查询性...
ffmpeg 常用命令记录
[FFmpeg][1] 是视频处理最常用的开源软件。 它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。 FFmpeg 本身是一个庞大的项目,包含许多组件和库文件,最常用的是它的命令行工具。本文介绍 FFmpeg 命令行如何处理视频,比桌面视频处理软件更简洁高效。 如果你还没安装,可以根据官方文档 先完成安装。 mp4转webp格式: 参数说明: -i 输入文件 -vf scale=750:-1 意思是转换后的大小,宽度为750,高度为-1,即为随比例变化 -loop 0 循环模式,0为循环,1为不循环 -r 12 帧数 -qscale:v 100 画面质量,1-100,100质量最好 -compression_level 6 有损压缩,压缩级别为3(0-6,默认为4,越高效果越好) ffmpeg -i source.mp4 -vf scale=750:-1 -loop 0 -r 12 -qscale:v 100 -compression_level 6 outpu...
如何让你的 Web 项目实现内网穿透
什么是内网穿透? 内网穿透,简单地说就是内网的数据让外网可以获取,可以映射到公共网络上,这样就可以在公共网络上访问内网的数据。 内网是不能被外网直接访问的,只能通过一些中转技术,如 DingTalk Design CLI、花生壳、Natap 等工具,让内网“假装”成外网,就是内网穿透。 外网主机的 IP 地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。 内网穿透扩展了我们之前的工作场景和范围,让使用者可以不局限在内网环境中就可以做到局域网才能做的事情,大大提高了我们的效率。 内网穿透可以实现什么? 实现外网访问树莓派 教授远程访问学校的服务器 搭建个恋爱单页面站点,记录他跟她的恋爱故事 开发调试 web 站点 开发调试手机移动 APP 搭建一个临时的演示站点给客户看 微信小程序开发方便调试 搭建“我的世界”私服 Come on ,让你的 WEB 项目实现内网穿透Wonderland:“创建一个能跑起来的网站,所以第一步就是把网站搭建起来。” YOU:“这简单呀!我三年前的时候就玩过,写...






