- 博客(172)
- 资源 (1)
- 收藏
- 关注
原创 迁移WSL中的ext4.vhdx文件
今天发现系统C盘的磁盘空间已经严重不足,查找后发现有一个很大的ext4.vhdx因为我在WSL中安装了一个ubuntu子系统,所以这个ext4.vhdx文件就是ubuntu系统的虚拟磁盘。下面介绍如何迁移这个文件到其它分区。
2025-01-13 22:48:48
1517
3
原创 【PHP】在ThinkPHP6中Swoole与FPM的简单性能测试对比
本文主要测试在ThinkPHP 6框架中,使用与使用PHP-FPM两者的HTTP并发性能差距,测试方法较简单,仅供参考。
2024-10-20 14:33:51
1177
原创 【PHP】安装swoole时报错:No package ‘libbrotlienc‘ found
No package 'libbrotlienc' found
2024-10-17 11:51:07
1403
原创 如何克隆Git仓库的子目录:稀疏检出
一般来说,我们在克隆git仓库的时候,都是一整个仓库都克隆出来的。如果假设现在有一个很大的仓库,仓库里有多个子项目,而我们只想克隆其中一个子项目的时候,应该怎么做呢?
2024-10-16 12:29:37
720
原创 【Ubuntu】apt命令安装最新版本Nginx
官方ubuntu软件仓库的软件版本可能会比较旧,导致无法安装最新版的软件包,例如在Ubuntu 22.04中,默认情况下,执行命令安装到的 Nginx 版本是1.18.0(2020年4月发布),比较旧。如果希望安装最新版本的Nginx,需要添加 Nginx 的外部仓库,其它软件也同理。另外一种方法是到 Nginx 的官网下载新版本tar.gz源码包,手动编译安装,本文暂不讨论。
2024-05-09 15:35:22
2859
原创 【Nginx】the “listen ... http2“ directive is deprecated
报这个错误的原因是,Nginx 自从 1.25 版本后,开启。今天安装了 1.26.0 版本的Nginx,执行。的配置写法有变更,旧的写法已经被标记为“过时”。
2024-05-08 14:53:24
2630
1
原创 【PHP】PHP7中的引用计数
PHP的变量在底层有一个引用计数(refcount)属性,这个引用计数是为垃圾回收(GC)服务的,当引用计数变为0的时候,就代表这个变量可以被回收。但也不是所有的数据类型都支持引用计数,例如一些简单类型如整型、浮点型、布尔型、NULL等,它们就不支持(表现为 refcount 的值恒为0)。不支持 refcount 的数据类型,不会被GC回收,它们在请求结束时才会释放。可以使用函数查看变量的refcount(需要安装xdebug// 整型$a = 1;// 浮点型$a = 1.1;// 布尔型。
2024-04-22 17:57:56
1148
原创 【Redis】解决List类型的消息可靠性问题
平时做后端开发时,如果需要用到消息队列功能,但公司的IT环境又没有提供专业的队列软件(RabitMQ/Kafka…),那么在简单场景下,可以使用 Redis 的List数据类型来做消息队列。但List类型有一个挺致命的缺点,就是消息可靠性。当消费者使用命令从队列中取出一条消息后,如果消费者在消费完成前崩溃了,那么这条消息就永远丢失找不回来了。注:为了方便理解,下文统一以“左进右出”的 List 作为例子。
2024-04-03 21:06:17
986
原创 【MySQL】LEFT JOIN表时条件的位置对查询结果的影响
我们知道,JOIN表的查询条件可以放在JOIN语句处,也可以放在 WHERE 语句处。用这条件举例:方式1:放在 WHERE 语句处方式2:放在 JOIN 语句处平时做开发我基本都是用 方式1,而 方式2 就较少使用,可能会有人像我一样,觉得这两种方式的查询结果是一样的,但其实不是的。
2024-03-15 16:38:49
772
翻译 【最佳实践指南】在ClickHouse中更新和删除数据
对于一个分析型数据库而言,更新和删除数据是有挑战的,它会显著影响数据库的性能。为了解决这个问题,ClickHouse为不同场景提供了不同的高效更新和删除数据方式:Lightweight删除,通过语句从ClickHouse里删除数据。这是删除数据最高效的方式,适合无需立即释放磁盘空间、允许数据继续存留在磁盘上的场景;Mutation删除,通过语句删除。适合需要立即释放磁盘空间的场景。例如,合规要求需要确保数据从磁盘上删除。Mutation更新,通过语句更新。适合不会频繁更新数据的场景使用TTLs。
2024-03-08 22:00:06
11890
2
原创 【javascript】如何判断一个对象属性是否存在
在javascript里,可以有多种判断对象属性是否存在的方法,使用哪种方法来判断,取决于对 “存在” 两个字的定义是什么。
2023-11-29 23:24:00
1585
转载 【golang】理解Golang赋值的并发安全性
并发安全就是程序在并发情况下执行的结果是正确的。比如对一个变量简单的自增操作count++,在非并发下很好理解,而在并发情况下却容易出现预期之外的结果,这样的代码就是非并发安全的。因为count++其实是分成两步执行的,当分成了两步执行,那么其他协程就可以趁着这个时间间隙作怪。count:= 1a > 读取count : 1b > 读取count : 1a > 计算count+1 : 2b > 计算count+1 : 2a > 赋值count : 2b > 赋值count : 2。
2023-11-29 18:09:33
427
原创 【javascript】如何给fetch请求设置超时时间,以及结合Promise使用的相关用法
在javascript中,fetch函数是用来进行网络请求的,但默认情况下它是不支持超时设置的
2023-11-23 15:15:08
3359
原创 【PHP】如何关闭buffer实时输出内容到前端
默认情况下,我们在PHP里使用echo等函数输出的内容,是不会马上发送给前端的,原因是有 buffer 的存在,buffer又分两处,一处是PHP本身的buffer,另一处是Nginx的buffer。
2023-09-28 10:51:02
533
原创 为什么SQL预编译可以防止SQL注入攻击
防范SQL注入攻击是每一位做后端开发的程序员必须会的基本功。本文介绍其中一种防范攻击的方法:SQL预编译。
2023-09-27 17:40:45
658
原创 在HTTP请求中安全传输base64编码的字符串
base64是一种常见的的编码格式,它可以把二进制数据编码成一个由大小写英文字母(a-zA-Z)、阿拉伯数字(0-9),以及三个特殊字符组成的字符串。
2023-09-25 16:03:45
3028
原创 在Windows上无法使用TortoiseSVN等工具管理WSL2中的代码的问题
众所周知,WSL2 的跨系统IO读写性能非常差(详情见我之前写的这篇文章),而我的代码又是在 WSL2 中运行的,为了提高性能,所以我的代码也必须放在 WSL2 中,以避免跨系统的IO读写。
2023-09-17 17:54:10
746
原创 【golang】在单线程程序中,协程并发是安全的吗?
我们都知道,多个线程操作同一个变量,是有线程安全问题的。但是,如果换成是“多个协程操作同一个变量”呢?还会有安全问题吗?
2023-09-05 15:50:14
683
原创 【golang】使用通道时需要注意的一些问题
经修改后代码不会再报错了,原因是,【协程1】退出后,虽然【协程2】还在阻塞式地读取空通道,但这时除了【协程2】以外,还有一个【main协程】在运行,所以不会报错。原因是,当【协程1】往通道写入3个数据后,【协程1】就结束运行了,这时【main协程】(是的,main函数也是运行在协程里的)读取出这3个数据后,并没有退出。针对第2点,如果这个空的通道是已关闭的,则不会阻塞,读取到的是这个通道数据类型的零值。通道,发生了阻塞,但这时只有【main协程】在运行了,只剩下一个协程,所以报错。
2023-07-03 21:08:54
449
原创 【golang】请求HTTP接口代码示例
在开发过程中,无论是前端还是后端,都经常需要对第三方服务发起HTTP请求获取数据,本文列出一些代码示例用于参考,主要是 GET 请求 和 POST 请求。
2023-07-02 22:01:50
1296
原创 Nginx域名跟server_name不匹配也能访问
最近发现有一个别人的域名(下文以举例),DNS恶意解析到了我的一台服务器IP上,我的服务器上刚好部署了一个网站(域名为),Nginx里的配置为mysite.com奇怪的是,用域名竟然也能访问到我的网站,都不匹配,Nginx怎么会允许它访问的呢?后来查资料得知,如果Nginx匹配不到的话,会将请求交给来处理。怎么确定呢?首先是看此端口有没有配置了如果这个server配置了指令,那么就会交给它处理。但如果所有的server都没有指令呢?那么就会交给第一个开启了此端口的server处理。
2023-06-30 13:18:25
3642
原创 【golang】如何对struct切片进行去重
编写一个方法,给定一个元素为struct类型的切片,和一个struct的字段名,根据这个字段名对切片进行去重。
2023-03-02 16:50:22
363
原创 GoFrame框架model Update方法报“expected N arguments, got N+1”错误
GoFrame框架model Update方法报“expected N arguments, got N+1”错误
2023-03-01 16:41:33
349
原创 【golang】学习golang过程中遇到的坑
本文记录我在学习golang过程中遇到的一些容易踩到的坑,以及一些需要注意的问题。持续更新中...
2023-02-28 14:36:05
380
原创 golang接口用法之:结构体内嵌匿名接口
当我们需要重写一个 “实现了某个接口的结构体” 的部分方法,而其它方法保持不变 的时候,就需要用到这种用法。
2023-02-24 16:49:05
1570
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人