- 博客(214)
- 资源 (12)
- 收藏
- 关注
原创 sql_mode=only_full_group_by
一、原理层面这个错误发生在mysql5.7版本及以上版本会出现的问题mysql5.7版本默认的sql配置是sql_mode="ONLY_FULL_GROUP_BY",这个配置严格执行了"SQL92标准"。很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。二、sql层面在sql执行时,出现该原因简单来说就是。...
2022-08-01 17:07:55 6141
原创 PHP通过逆序环视正则匹配驼峰命名转换成下划线命名
简单来讲就是把 goodsList 转换成 goods_list使用场景:class User{ private $user_id; public getUserId(){ return $this->user_id; } public setUserId(){ $this->user_id = 1; }}大概就是这种存在保存值 , 但不清楚是否存在这个私有变量的场景话不多说上才艺fu
2022-05-14 00:09:13 190
原创 mysql的树数据结构
2.mysql为什么不用BTree , 而是使用B+Tree。平衡二叉树: 一个节点只能保存一个数据, 查询浪费io。1. mysql为什么不用二叉树或平衡二叉树。二叉树: 存在极端情况 ,浪费io。
2023-05-31 10:15:39 252
原创 hyperf最近使用的文件上传类
最近使用php的hyperf框架 , 写了上传的服务类, 并使用了简单工厂模式和反射类来进行分发处理, 并使用抽象类对上传类进行了限制,统一参数,统一返回。
2023-04-13 14:07:51 813 1
原创 linux升级cmake
这里我下载的cmake-3.26.1-linux-x86_64.tar.gz。这里在系统可以运行 arch 查看内核 , 我这里是centos7。我这里下载是为了安装rabbitmq-c , 所以不全面。解压后进入bin目录 , 运行。看下和你下载的是否版本对应。
2023-03-27 15:07:39 337
原创 启动rabbitmq
当rabbitmq-service install之后默认服务是enable的,如果这时设置服务为disable的话,rabbitmq-service start就会报错。当rabbitmq-service start正常启动服务之后,使用disable是没有效果的。rabbitmq-plugins disable rabbitmq_management 关闭。rabbitmq-plugins enable rabbitmq_management 启动。3、Rabbitmq 管理插件启动,可视化界面。
2023-03-10 10:38:41 1817
原创 php通过变量的值获取对应常量的值
这里通过rabbitmq投递任务 , 在消费者中调用分发方法进行不同操作(异步 , 节省请求时间)真的是难到我了 , 下面是代码 , php函数自己研究一下吧。通过变量的值获取是否有同名的常量 , 并获取这个常量的值。我这是hyperf框架 , php8.0。
2023-02-01 17:09:33 265
原创 掘金设置gif动图头像
打开修改个人信息页面 , f12 , 打开console, 输入下面的代码 ,回车 , 刷新看一下吧。没有的话很简单 , 看中谁的直接左键按住头像, 拖拽到浏览器上方就能打开就能获取🤣。想弄属于自己的就找一个动图 , 然后在沸点等地方上传图片,后续不用我说吧。
2023-01-31 20:22:47 1154
原创 laravel 模型属性$casts
属性转换提供了类似于访问器和修改器的功能,且无需在模型上定义任何其他方法。模型中的 $casts 属性提供了一个便利的方法来将属性转换为常见的数据类型。$casts 属性应是一个数组,且数组的键是那些需要被转换的属性名称,值则是你希望转换的数据类型。decimal类型和其他的不同 , 需要指定小数点位数。decimal:2 保留小数点两位。
2022-12-30 15:43:09 1797
原创 laravel框架 hyperf框架 的 find_in_set
dispatch_city 是城市码 , 逗号分隔那种 ,$city_code是数字。
2022-12-28 08:42:10 510
原创 hyperf3.0 上传文件报错 , 文件头大
这里我查找了点资料 , 解决方案很简单 , 就是在config / autoload / server.php中的setting设置 , 添加一行代码, 并增大一点缓冲区大小即可。这里如果你像我一样手写的工厂模式上传 , 可以使用OSS , 千万别用华为云的就对了 , 这里如果服务器和OSS在同一个机房 , 可以使用内网地址达到加速的作用。下面是我的阿里云上传OSS代码 , 没有存储到本地进行中转 , 2M文件大概是0.2s左右。
2022-12-22 17:32:43 1365
原创 微信小程序订阅消息
subscribeMessage.send | 微信开放文档由于业务需求 , 需要实现小程序订单状态发送给用户 , 于是微信小程序发送订阅消息就被找到了这里前端是使用了uniapp , 具体实现方式不清楚,就不瞎bb了后端这里就是上面的接口文档 , 总共需要是三个步骤1. 获取小程序 appid 和 密钥2. 订阅消息模板选择3. 通过appid 和 密钥获取accesstokenauth.getAccessToken | 微信开放文档4. 获取用户小程序openid5. 测试模板消息是否发送成功 , 这里
2022-12-05 16:25:23 5778
原创 hyperf redis-cluster连接
配置很简单 , 随便在网上一搜一大堆 , 但是一旦出问题 , 网上有效的解决方案会很少 , 官方文档也不太容易懂 , 很多网上的帖子都是复制粘贴的和想要的结果根本不搭边😒。这里我之前是使用的redis-sentinel哨兵 , 但是总有redis无法连接的情况发生 , 于是从 1主3从3哨兵直接上cluster集群 , 3主3从。这里的seeds选项是各个redis节点, 我这里是所有节点都写了 ,但是我测试只写一个节点也是好使的。这里有一个注意事项 , 在使用redis-cli的时候需要加上。
2022-11-22 15:35:26 591
原创 linux 安装 php-amqp rabbitmq-c
这里需要安装rabbitmq-c和amqp扩展首先一定要先升级openssl ,我这里最低也需要1.1.1 ,给我坑够呛克隆如果没通过验证 , 就去本地开小飞机 , 然后克隆 , ftp传上来这里把rabbitmq-c 放在了 /usr/local/rabbitmq-c如果编译感觉出问题 , 可以把build文件夹删除 , 重新来过这里第5行一定加上地址 , 后面安装amqp会用到第6行一定看清有一个 ' . ' , 否则必失败如果成功会打印类似下面的地址, 告诉你扩展包在哪里 /www/se
2022-11-04 16:30:05 1337
原创 linux编译安装openssl3.0.7
资源地址: /source/index.html编译安装Can't locate IPC/Cmd.pm in @INC报错原因:缺少IPC/Cmd.pm模块安装perl-CPAN[yum install -y perl-CPAN进入CPAN的shell模式,首次进入需要配置shell,不懂就直接回车,默认配置perl -MCPAN -e shell在shell中安装缺少的模块cpan[1]> install IPC/Cmd.pm安装成功后,重新编译OpenSSL即可
2022-11-04 16:12:21 2508 2
原创 PHP丢失依赖文件libssl.so libcrypto.so
只需要把这两个文件建立软链 , 然后放在/lib64中就行 , 这里/lib64也是软链 , 真实地址是/usr/lib64。这两个文件分别对应/usr/local/openssl/lib64 中 libcrypto.so 和 libssl.so。
2022-11-04 15:49:02 477
原创 RediSearch CentOS7编译安装
github地址: GitHub - RediSearch/RediSearch: A query and indexing engine for Redis, providing secondary indexing, full-text search, and aggregations.git克隆下来 , 但是要注意 , 需要等待验证的完整在下图中存在多个git , 如果验证失败应该翻墙克隆 , 否则大概率无法编译成功建议ftp上传 , 压缩包压缩后里面可能不存在 .git文件夹这里是在安装依赖 ,
2022-10-31 10:44:26 334
原创 Linux编译更新make
解压后 ,进入目录 , 运行 ./make -v。当前日期:2022-10-31 最新版是4-3。然后运行 make -v 看下是否成功。建立软链到 /usr/bin。
2022-10-31 10:35:54 418
原创 hyperf redis哨兵连接池 读写分离
这里使用的redis哨兵模式 , 并通过实例化不同的连接池达到读写分离的作用首先如图所示 , 创建这四个文件。
2022-10-27 09:48:36 1019
原创 hyperf自定义连接池创建redis哨兵 1
这里是用predis写的 , 所以这里需要安装predis composer包首先在app \pool 文件夹中创建了这两个文件其中myConnectionPool是连接池 , RedisIn是创建redis连接。
2022-10-21 10:14:28 596
原创 php_redis扩展 连接redis哨兵模式
我用hyperf连接redis哨兵碰到了很多很多问题最主要的问题就是一大堆人挂羊头卖狗肉写着php连接哨兵的幌子内容是配置哨兵我™服了没办法人要靠自己我这里用的中文镜像站 , 链接放评论里了除了php-redis扩展连接方式以外 ,还有predis软件包的连接方式 , 自行翻找我的博客predis软件包是用composer下载的我这里就直接用的原生空文件写的demo我这里没有安装 ,我用的宝塔 ,想手动安装自行查找资料 ,这个不难下面我就不放截图了。
2022-10-21 09:19:58 417
原创 predis 连接redis哨兵模式
composer安装完成后 , 项目下会出现一个vendor文件夹和composer.json。还有php-redis扩展的连接方式 , 自行翻找我的博客。我用hyperf连接redis哨兵碰到了很多很多问题。这里代码也很简单 , 这里可以配置多个哨兵的。然后打开哨兵下属主机从机 , 查看是否写入成功。predis软件包是用composer下载的。我这里用的中文镜像站 , 链接放评论里了。我这里就直接用的原生空文件写的demo。写着php连接哨兵的幌子。输出 ok123。
2022-10-21 09:07:45 811 1
原创 Redis Sentinel哨兵模式1
由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点是主从关系的其中一个从节点升级为新的主节点, 并且将其他的从节点指向新的主节点。跟主服务器一样,Sentinel 会与每个被发现的从服务器创建命令连接和订阅连接。
2022-10-19 09:19:50 148
原创 使用nginx负载均衡upstream分发请求地址到hyperf项目
这里主要是配置分发负载均衡 , 只是轮询 , 其他模式如 iphash 权重等 , 自行查找资料修改upstream。宝塔环境: centos7 + php8.1 + nginx1.2 + swoole4 + hyperf3.0。这里是加在http 模块下 , nginx配置文件中的结构如下。4. 修改两个项目访问结果不一致 , 查看请求。2. 在网站的配置文件中修改成下面这样子。1. 首先在nginx主配置文件中添加。3. 重启nginx。
2022-10-18 16:48:39 968
原创 php 脱敏(手机号脱敏 , 姓名)
脱敏在工作中很常见 , 比如把 张三展示成张* , 17767779777展示成177****9777。使用: 真实姓名 手机号脱敏。
2022-10-18 08:47:02 2332 2
原创 单服务器启动多个redis实例
pidfile 为 /var/run/redis/redis6378-server.pid。logfile 为 /var/log/redis/redis6378-server.log。如果报 -bash: redis-server: command not found。复制redis.conf为新的配置文件 , 如redis6378.conf。dbfilename 为 redis6378.rdb。
2022-10-14 10:07:10 513
原创 hyperf 前置中间件 后置中间件
今天碰到一个问题 , 就是正常跑接口 , 我们需要做一些日志 , 当出现慢日志问题进行分析与接口优化 , 于是想到了全局中间件但是hyperf文档中没有写根据这个官方的图示 , 可以看到这是一个洋葱模型 , 也就是说 , 肯定存在后置中间件执行顺序: Request -> Middleware 1 -> Middleware 2 -> Middleware 3 -> Middleware 2 -> Middleware 1 -> Response。
2022-09-16 17:01:15 550
原创 swoole(hyperf) cURL error 1014: SSL verify failed(编译安装swoole)
今天开发的是hyperf框架加入支付宝登录 , 出现了上面的问题宝塔版本7.9.4centos 7hyperf 3.0php 8.1.9swoole4 (宝塔软件商店直接安装的)如果你们也出现了这种问题 , 可以考虑按照我的步骤走 , 可能会解决
2022-09-15 15:55:06 1556
原创 linux多人共享控制台 screen
今天碰到一个问题 , 就是开发php项目,使用的hyperf框架 , 所有的打印信息都在控制台 , 但是当有一个人监听时 , 我就看不见打印信息了 , 这就很伤。于是想了个办法解决这个问题 , 本机centos7。这里进入会话就是这个问题的解决方案了。用-d 参数将指定会话进行离线处理;用-x 参数一次性恢复所有的会话;用-r 参数回复指定会话;查看会话列表 -ls。使用screen创建。
2022-09-14 14:01:06 393
原创 hyperf通过nginx代理后, 获取真实ip
在多级代理的情况下,记录每次代理之前的客户端真实ip。#保留代理之前的真实客户端ip。#保留代理之前的host。# 转发Cookie,设置 SameSite。这里需要配置nginx配置文件。
2022-09-09 15:06:04 2193
原创 安装hyperf指定版本
composer create-project hyperf/hyperf-skeleton 文件名 版本号。现在想安装2.2必须。
2022-08-29 18:44:21 891
php swoole 5.0.0扩展包
2022-09-26
windows-redis_5.0.14.1
2022-07-07
centos8 yum包 , yum放进/etc/yum.repos.d, yum makecache
2022-06-15
swoft-cli v0.2.1
2022-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人