文章列表
- PHP 实现支持权重的 array_rand 方法
PHP 字段的 [array_rand](https://www.php.net/manual/en/function.array-rand.php) 方法是从 array 中随机挑选一个并返回元素的 key。但是有时候 array 中的元...
Mar 25, 2025 - Redis 驱动的 Laravel Job Release 实现原理
# Redis 驱动的 Laravel Job Release 实现原理 在 Laravel 中处理 job 时,可以使用 `release` 方法将 job 重新放回队列,并且可以自定义延迟时间。那么,这里有两个问题: 1. Jo...
Dec 2, 2024 - How to use the Laravel Context Event: hydrated and dehydrating
# Laravel Context Laravel 在 11 版本中引入了 Context 概念,允许你在请求,队列或者 command 中共享一些数据。在 Context 中添加一些 Key 后,在任何地方打日志,那么日志的 conte...
Nov 13, 2024 - 【Python】日常笔记
#### Linux环境下安装pip 在使用`apt-get install python3`的时候,`pip`并没有安装上,这里有个在Linux上的多种安装方式 [https://stackoverflow.com/questions/6...
Aug 17, 2024 - 【MySQL】死锁
在抖音上看到一个视频,内容就是程序员去面试,题目是**请描述一下死锁,如果可以很清楚的描述就可以录用**,然后这个程序员说**如果你们录用我,我就讲一下死锁**,然后就被录用了。当然我们知道这是什么意思。现在想用MySQL来介绍一个死锁的概...
Aug 17, 2024 - 【Redis】简单动态字符串(simple dynamic string, SDS)
`Redis`类型中有`string`的类型,比如我们用来做缓存的时候,经常会使用到`string`类型,这里就主要介绍一个`Redis`中`string`类型的实现,和`C`的字符串有什么区别。 ### SDS的定义 ```c struc...
Aug 17, 2024 - 【MySQL】事务隔离级别
### 隔离级别 事务的隔离肯定是需要解决事务执行中遇到的问题,所以在讨论事务的隔离级别之前先来介绍事务执行遇到的问题。 #### 事务并发执行遇到的问题 ##### 脏写(Dirty Write) 如果**一个事务修改了另一一个未提交事务...
Aug 17, 2024 - 【MySQL】高性能的索引策略-前缀索引
正确地创建和使用索引是实现高性能查询的基础。高效地选择和使用索引有很多种方式,下面将介绍如何高效的使用索引。 #### 独立的列 我们经常会遇到无法使用已有的索引。如果查询中的列不是独立的,则MySQL就不会使用索引。独立的列是指索引列不能...
Aug 16, 2024 - 【PHP】匿名函数递归
### 普通递归 普通函数的递归,大家应该都清楚,并且也都用过,比如说斐波那契数列,快速排序等等。 ```php #递归实现斐波那契额数列 function fibonacci(int $in) : int { if ($n <= 0)...
Aug 16, 2024 - 【Docker】错误记录
#### ERROR: 'phpize' failed 使用php:7.1-fpm-alpine3.7作为基础镜像的时候,在dockerfile中进行`RUN pecl install redis`,build镜像时会产生一个`ERROR:...
Aug 16, 2024 - 【Go】数组,切片(字符串):"append"的机制
### 简介 过程式编程语言最常用的功能之一就是数组的概念。数组看似简单,然而把他添加到编程语言中有许多的问题需要去解决: - 定长还是变长? - 尺寸作为类型的一部分吗? - 多维数组如何处理? - 空数组的含义? 解决这些问题将影响到...
Aug 16, 2024 - 【Go】了解Defer、Panic、Recover
`Go`有流程控制的机制:`if`、`for`、`switch`、`goto`。这里我们讨论并不常见的:`defer`、`panic`、`recover`。 一个`defer语句`会把一个函数压入一个栈中,当外层函数返回时,会按照后进先出...
Aug 16, 2024 - 【Go】映射
### 映射的内部实现和基础功能 映射是一种数据结构,用于存储一些列无序的键值对。 #### 内部实现 映射是一个集合。可以使用类似处理数组和切片的方式迭代映射中的元素。但映射是无序集合,意味着即使使用同样的顺序保存键值对,每次迭代映射的时...
Aug 16, 2024 - 【Go】切片
切片是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数`append`来实现的。这个函数可以快速且高效地增长切片。还可以通过对切片再次切片来缩小一个切片的...
Aug 16, 2024 - 【MySQL】用户自定义变量
## 使用用户自定义变量 ### 简介 自定义变量是容易被遗忘的MySQL特性,但如果能够用好,发挥其潜力,在某些场景下可以写出非常高效的查询语句。自定义变量是一个用来存储内容的临时容器。先来了解属性和限制: - 使用自定义变量的查询,无...
Aug 16, 2024 - 【Go】数组
## 数组的内部实现和基础功能 `Go`语言有三种数据结构可以让用户管理集合数据:数组、切片和映射。因为数组是切片和映射的基础数据结构。理解数组的工作原理,有助于理解切片和映射提供的优雅和强大的功能。 ## 内部实现 在`Go`语言中,数组...
Aug 16, 2024 - 【读后感】《社会动物》
第一次知道这本书是在王小川的微博上看到的,然后我被书名所吸引,凭直观感觉认为它是在讲社会学和人文学。评分还挺高,于是就在kindle上买了一本。 这本书我现在已经看了33%,在读的过程中,一些所思所想都在kindle上进行了标注...
Aug 16, 2024 - PHP json_decode error: Control character error, possibly incorrectly encoded
PHP 在进行 json 解析的时候会有很多报错,如果解析失败,可以使用`json_last_error_msg`方法,它会返回一个解析失败的原因。原因之一就有一个`JSON_ERROR_CTRL_CHAR`,表示`Control char...
Aug 5, 2024