自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 php之框架底层中间件模式开发实现、array_reduce的应用

众所周知php框架的中间件核心是通过array_reduce实现的。

2024-05-07 18:00:59 398

原创 php之基于amqp封装rabbitmq消息发送代码示例一对多发送任务消息

​原创的amqp原生封装rabbitmq框架代码示例,一对多发送任务消息,开箱即用、也可以在php框架里面使用可以兼容thinkphp、laravel、ci等任何框架代码使用与学习跳转github地址、打开链接有使用说明!!https。

2024-05-06 16:38:37 214 1

原创 微信JSAPI支付返回 “chooseWXPay:fail, the permission value is offline verifying“

微信开发者工具特有的报错,改用真机测试或者忽略错误。

2024-05-06 16:00:04 73

原创 laravel、tp等框架底层代码config方法实现示例

在php的laravel、tp框架中,普遍采用配置文件直接return数组的方式存放配置信息、日常的代码编写我们并不会这样做,其实核心代码很简单

2024-05-05 19:49:47 141

原创 laravel、tp等框架底层代码config方法实现示例

在php的laravel、tp框架中,普遍采用配置文件直接return数组的方式存放配置信息、日常的代码编写我们并不会这样做,其实核心代码很简单,只需要把include file赋值给变量即可。//调用config目录下的config.php里面的database数组。

2024-05-05 19:48:40 134

原创 laravel、tp等框架底层代码config方法实现示例

在php的laravel、tp框架中,普遍采用配置文件直接return数组的方式存放配置信息、日常的代码编写我们并不会这样做,其实核心代码很简单,只需要把include file赋值给变量即可。

2024-05-05 19:44:10 92

原创 php之基于amqp封装rabbitmq消息发送代码示例

可以兼容thinkphp、laravel、ci等任何框架。原创的amqp封装rabbitmq框架代码示例。

2024-05-04 20:33:33 409 1

原创 docker安装rabbitmq

访问地址http://127.0.0.1:15672。

2024-05-04 20:08:52 300

原创 fatal: fetch-pack: invalid index-pack output

解决方案:git clone --depth=1 要克隆的git地址 下载最近一次提交的代码 其他分支的内容都不下载 这样整体下载体量就变小了。执行命令:git clone --depth 1。

2024-05-04 14:14:46 219

原创 php之鸡肋的goto应用

此处的dump(b)和dump(d), php代码其实绕过了dump(b)和goto WORK2;但是WORK2的代码块又被默认执行了。此处的goto效果其实等与break 3;多层循环跳出goto是个很好的选择。复杂条件的if,else也可以选择用goto优化,代码会比较清晰。看起来高大上、用得好可以提升代码可读性、使代码看起来更加优雅。通过示例代码可以窥探goto的代码运行机制。

2024-05-02 10:12:54 365

原创 PHP ASCII码的字符串用mb_convert_encoding 转utf-8之后不生效

检测数据类型是ascii,转码之后再检测还是utf-8没生效### 1、mb_detect_encoding — 检测字符的编码说明检测字符串 str 的编码。

2024-04-30 18:10:01 885

原创 使用guzzle上传媒体文件类型数据代码示例

错误1:media data missing hint: [Gb9j4a0839w752]错误2:Invalid resource type: array。php使用guzzle正确上传腾讯上传媒体文件类型数据代码示例。

2024-04-30 15:36:41 137 3

原创 面试经常问到之redis到底有多少数据类型?

10.hyperloglog(基数统计)7.geospatial(地理)9.bitfield(位域)1.string(字符串)5.zset(有序集合)8.bitmap(位图)基础类型5种、扩展五种。6.stream(流)2.hash(哈希)3.list(列表)

2024-04-30 10:48:09 146

原创 php二维数组去重代码

array_unique代码只能一纬数组去重。实际工作中我们经常需要二维数组去重复。以下分享一下二维数组去重代码。

2024-04-30 09:27:41 168

原创 npm install 时出现 “npm ERR! code CERT_HAS_EXPIRED

3.删除系统用户目录下.npmrc和.yarnrc文件,以及修改.vuerc文件(如果有的话——>"useTaobaoRegistry": true)2.修改镜像(管理员运行命令行):npm config set registry https://registry.npmmirror.com。1.清空缓存:npm cache clean --force。官方域名npm.taobao.org弃用。查了有关资料发现是淘宝镜像切换,过期了。4.重新运行:npm install。切换一下npm镜像即可。

2024-04-29 16:33:34 48

原创 微信公众号、微信开发平台踩坑——errcode=61004

微信公众号、微信开发平台踩坑——errcode=61004解决方案。2.微信公众号后台授权第三方应用需要添加对应的白名单配置。1.微信公众号后台开发白名单配置。

2024-04-29 12:30:19 55

原创 Redis之字符串类型深入之SDS底层结构

众所周知c语言获取字符串长度的函数是strlen(char),这个函数的时间复杂度是O(N),本质其实就是一个循环,redis在结构体里定义了字符串长度属性,可以直接获取len,大大提高了效率!这是我网上早的sds最早的原型代码、新版本为了更好的控制内存使用了多种结构体不同的类型来记录数据,并用一个字节的三个位来表示结构体类型,如果大量使用短小字符串的话,节省下来的内存也是比较可观的。sds翻译过来就是动态扩容、先看一下最早版本redis的sds结构体。sds结构体的生命包含了free、len,

2024-04-29 09:47:04 428

原创 使用nginx的rewrite做一个镜像网站

老板需求想搞一个官网、然后有目标的抄袭网站、正常的做法需要迁移的东西非常的多,使用nginx的rewrite功能可以迅速的做一个静态网站的镜像**

2024-04-28 11:35:06 146

原创 mac自定义快捷键打开系统应用

最终效果是达成alt+t打开item2。

2024-04-28 09:40:58 175

原创 Redis之“不靠谱“的hyperLogLog,误差实测,实战中碰到的BUG深度解析

这段代码收集2000个用户从最开始的半天到后面需要5天,问题开始变得明显了,于是排查代码怀疑是HyperLogLog的问题,去redis的cli执行一下相关命令发现果然是hll的问题。可见hll的pfadd并不会每次增加uv都返回成功,因为pfadd到一定的基数才会去改变整个hll的近似基数,从而保证整体的hll的误差概率在0.83%比如我pfcount可能到达了10万,但是10万的0.83%就是830,这个时候我需要pfadd 831个才有可能返回true,从而改变整体的基数近似值。

2024-04-26 13:06:15 1140 1

原创 PHP Configure Error: Please specify the install prefix of iconv with --with-iconv=<DIR>

使用brew install libiconv之后依然报错。1.brew 镜像,阿里的镜像可能只有比较旧的包?继续编译php8的包终于成功了...哭了。编译php源码的时候碰到了这个问题,2.php版本需要iconv对应的包。编译错误重新安装呗?网上的解决方案大多都不靠谱。尝试了几个小时依然不行。我改成php7源码包。

2024-04-25 14:58:38 166 1

原创 php官网源码编译、以及php扩展开发

然后运行./configure --with-php-config=/Users/linsonggao/workspace/php8215/bin/php-config(实际为php-config所在路径)在linsonggao文件夹下,运行/Users/linsonggao/workspace/php8215/bin/phpize(实际为phpize所在路径)mac的brew安装的版本应该有问题不是最新的,也有可能是我镜像的问题下载不到最新的扩展、我试过重新下载php源码包或者brew指定版本都没用。

2024-04-25 10:59:50 752 3

转载 面试官问我redis为什么是单线程的?

之前被面试官问redis为什么是单线程的、脑子一片空白?首先想到的答案是没有必要、因为redis基本都是操作内存的、效率很快、没必要开启多线程、显然这样的答案比较肤浅,回家赶紧恶补一下相关知识点。redis是单线程的原因在于redis用单个CPU绑定一块内存的数据,然后针对这块内存的数据进行多次读写的时候,都是在一个CPU上完成的。redis核心就是 如果我的数据全都在内存里,我单线程的去操作就是效率最高的。所以,redis是单线程。

2024-04-25 10:12:31 16 1

原创 mysql查看数据库、表大小、磁盘空间占用以及一些常用mysql代码,持续更新ing

其中tabl_rows可以替代分页代码的count。可以查看数据库每个表占用磁盘大小。如果行数不对可以重新分析表。查看数据库整体大小代码。

2024-04-24 16:10:16 199

原创 redis分布式锁setnx的正确用法

【代码】redis分布式锁setnx的正确用法。

2024-04-24 15:38:17 200

原创 linux切换go版本神器之goenv安装教程

【代码】linux切换go版本神器之goenv安装教程。

2024-04-24 15:28:37 89

原创 golang使用通道channel控制协程的并发度

实战中我们会从数据库查找大量数据、for循环数据开启协程去处理数据会开启大量的协程、我们需要控制每次并发协程数量、防止服务器宕机。可见一次只输出两条数据,有效控制住了并发度。使用通道控制协程的并发度。

2024-04-24 15:19:45 262

原创 golang,gorm实现mysql的upsert

1.使用gorm的原生mysql支持。2.使用clauses。

2024-04-23 15:56:26 177 3

原创 mysql的upsert与查询插入更新性能、速度对比

当实际工作中遇到这么一种需求:数据库没有这条数据,我需要新增,有这条数据我需要修改,或者某个字段的数量进行调整。那么我们就可以考虑使用mysql的upsert语句了。使用php语言对比mysql的upsert效率。

2024-04-23 13:09:49 477 3

原创 mysql的upsert与查询插入更新性能、速度对比

没有这条数据,我需要新增,有这条数据我需要修改,或者某个字段的数量进行调整。2.测试代码2,传统的写法,查找不存在则插入,存在则更新。那么我们就可以考虑使用mysql的upsert语句了。使用upsert耗费时间1.4秒。使用php语言对比mysql的upsert效率。使用传统的查询更新耗时2.6秒。1.代码片段使用mysql的upsert。

2024-04-23 12:54:18 480

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除