自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 php大文件切片/分片上传思路+代码[支持断点续传]

<!-- 分片上传的demo 请求接口: /xxxx/xxxxx 请求方法: post 请求参数: 见底下js的ajax --><!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>分片上传的事例</title> <script src="http://c.

2020-06-03 18:22:13 1397 6

原创 RabbitMQ分享

RabbitMQ遵循AMQP协议,自身采用Erlang生产者发消息,启动多个消费者实例来消费消息,每个消费者仅消费部分信息,可达到负载均衡的效果。

2024-03-04 10:04:58 1157

原创 H5页面打包成IOS应用(描述文件)

1.下面这个代码根据占位符做修改后 将内容copy到后缀为.mobileconfig 的文件中 即可在Safari中下载、安装描述文件。导出后就大工告成了,打开Safari 下载这个文件 就可以安装了~{{$appLogo}} app的base64Logo。{{$appName}} app的名称。{{$appDesc}} app的描述。{{$appUrl}} 要跳转的URl。

2023-06-13 15:12:58 1991

原创 关于一个容器Python环境和依赖相互隔离的事情

停用:$ source /my_project_dir/venvName/Scripts/deactivate。使用 virtualenv。

2023-05-31 20:38:20 119

原创 PHP中数组`+`运算符

输出:Array ( [a] => apple [b] => banana [c] => cherry )元素被忽略,并且合并后的结果数组中只保留了键名为。在上面的示例中,由于。数组中已经存在键名为。

2023-05-26 11:03:48 724

原创 记一次array_map的使用(代码优化)

array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。该函数返回一个包含从 low 到 high 之间的元素的数组。range() 函数创建一个包含指定范围的元素的数组。array_map的使用方法。

2023-05-26 10:47:28 739

原创 php复习

php复习

2023-01-31 13:19:03 88

原创 快速排序算法

快速排序算法

2022-03-24 10:06:49 819

原创 插入类排序-希尔排序

希尔排序

2022-03-23 12:22:15 76

原创 冒泡排序。

冒泡排序

2022-03-22 15:06:00 662

原创 直接选择排序

直接选择排序

2022-03-22 14:38:21 726

原创 直接插入排序实现

php版本:function insertSort($arr){ $count = count($arr); if ($count < 2) { return $arr; } for ($i = 1; $i < $count; $i++) { // 当前值 $temp = $arr[$i]; for ($k = $i - 1; $k >= 0; $k--) {

2022-03-22 14:12:54 501

转载 MySQL实战45讲学习笔记:第十四讲

一、引子在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数。这时候你可能会想,一条 select count(*) from t 语句不就解决了吗?但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢。然后你可能就想了,MySQL 怎么这么笨啊,记个总数,每次要查的时候直接读出来,不就好了吗。那么今天,我们就来聊聊 count(*) 语句到底是怎样实现的,以及 MySQL 为什么会这么实现。然后,我会再和你说说,如果应用中有这种频繁变更并需要统计表

2022-03-12 10:20:36 243

转载 MySQL实战45讲学习笔记:第十三讲

一、引子经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变?那么今天,我就和你聊聊数据库表的空间回收,看看如何解决这个问题。这里,我们还是针对 MySQL 中应用最广泛的 InnoDB 引擎展开讨论。一个 InnoDB 表包含两部分,即:表结构定义和数据。在 MySQL 8.0 版本以前,表结构是存在以.frm 为后缀的文件里。而 MySQL 8.0 版本,则已经允许把表结构定义放在系统数据表中了。因为表结构定义占用的空间很小,所以我们今天主

2022-03-12 09:44:44 253

转载 MySQL实战45讲学习笔记:第十二讲

一、引子平时的工作中,不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。看上去,这就像是数据库“抖”了一下。今天,我们就一起来看一看这是什么原因。二、你的 SQL 语句为什么变“慢”了在前面第 2 篇文章《日志系统:一条 SQL 更新语句是如何执行的?》中,我为你介绍了WAL 机制。现在你知道了,InnoDB 在处理更新语句的时候,只做了写日志这一个磁盘操作。这个日

2022-03-10 11:32:17 170

转载 MySQL实战45讲学习笔记:第十一讲

一、如何在邮箱这样的字段上建立合理的索引现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:mysql> create table SUser(ID bigint unsigned primary key,email varchar(64),...)engine=innodb;由于要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句:mysql> sele

2022-03-10 10:35:53 167

转载 MySQL实战45讲学习笔记:第十讲

一 、本节内容概要前面我们介绍过索引,你已经知道了在 MySQL 中一张表其实是可以支持多个索引的。但是,你写 SQL 语句的时候,并没有主动指定使用哪个索引。也就是说,使用哪个索引是由MySQL 来确定的。二、优化器的逻辑在第一篇文章中,我们就提到过,选择索引是优化器的工作。而优化器选择索引的目的,是找到一个最优的执行方案,并用最小的代价去执行语句。在数据库里面,扫描行数是影响执行代价的因素之一。扫描的行数越少,意味着访问磁盘数据的次数越少,消耗的 CPU 资源越少。当然,扫描行数并

2022-03-10 10:15:53 108

原创 mac os 安装mysql

mac os 安装mysql

2022-03-09 15:40:42 762

转载 MySQL实战45讲学习笔记:第九讲

MySQL实战45讲学习笔记:第九讲

2022-03-09 15:18:37 155

转载 MySQL实战45讲学习笔记:第八讲

一、今日内容概要我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。但是,我在上一篇文章中,和你分享行锁的时候又提到,一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,它又不能这么超然了,会被锁住,进入等待状态。问题是,既然进入了等待状态,那么等

2022-03-08 16:36:57 237

原创 MySQL实战45讲学习笔记:第七讲

MySQL实战45讲学习笔记:第七讲

2022-03-07 20:47:18 534

转载 MySQL实战45讲学习笔记:第六讲

一、概述数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。二、全局锁1.什么是全局锁?全局锁就是对整个数据库实例加锁。mysql提供了一个加全局锁的方法:Flush tables with read lock(FTWRL)当你需要让整个数据库处于只读状态的时候,可以使用上面那个命令。之后其他.

2022-03-06 11:25:03 48

转载 MySQL实战45讲学习笔记:第五讲

MySQL实战45讲学习笔记:第五讲

2022-03-05 17:30:57 79

原创 MySQL实战45讲学习笔记:第四讲

一、索引模型1.索引的作用索引的出现其实是为了提高数据查询的效率,就像书的目录一样 提高数据查询效率2.索引模型的优缺点比较哈希表/有序数组/二叉搜索/b+tree1>哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的键即 key,就可以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换算成一个确定的位置,然后把 value 放在数组的这个位置。不可避免地,多个 key 值经过哈希函数的换算,会出现同一个值的

2022-03-04 21:04:17 138

原创 MySQL实战45讲学习笔记:第三讲

MySQL实战45讲学习笔记:第三讲

2022-03-03 10:49:03 127

原创 MySQL实战45讲学习笔记:第二讲

一、redo log工作原理生意红火的时候 酒店老板思路 mysql设计思路 1.先写到粉板上面 1.WAL(Write-Ahead Logging) 先写日志 2.等打烊后账本翻出来核算 2.WAL(Write-Ahead Logging) 在写磁盘 今天账特别多粉板写满了 1.把黑板上一部分账单更新到账本 1.当 checkpoint被追上的时候,不执行更新操作 停下来处理一些记录 推进checkpoint 2.把那些记录擦掉 2.从头开始写

2022-03-02 10:47:36 313

原创 MySQL实战45讲学习笔记:第一讲

MySQL实战45讲学习笔记:第一讲

2022-03-01 20:52:54 648

原创 记一次代码优化

优化前: $canUseCalculationPowerByBtc = 0; //可用算力 $cumulativeOutputByBtc = 0; //累计产出 $canUseCalculationPowerByEth = 0; //可用算力 $cumulativeOutputByEth = 0; //累计产出 foreach ($userOrderInfo as $key => $val.

2021-03-09 15:38:58 266

原创 rabbitmq-php服务的封装.

见我的github:https://github.com/wen1014/rabbitmq-server_php

2021-01-14 17:12:06 212

转载 redis del 通配符 批量删除 key

命令:redis-cli keys "user:login:*" | xargs redis-cli del解释:1.先查出所有的 keys 然后删除Linux xargs 命令xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令

2020-12-29 09:39:10 7462 1

原创 linux 查找之前打过的命令

第一种:history | grep xxx第二种:ctrl +r 搜索快捷按键类似于 window 文本查找

2020-12-29 09:38:08 405

原创 nginx 简单负载均衡

upstream love_note_api_v1 { server love_note_api_v1_01:30011 weight=10; #此处的weight是代表权重 server love_note_api_v1_02:30012 weight=20;}server { listen 80 default_server; #监听的服务器的端口 listen [::]:80; server_name xxx.xxxx.com; ..

2020-12-29 09:37:30 45

原创 docker logs 实时查看日志

docker logs -f -t --since="2017-05-31" --tail=10 container 解释:--since : 指定输出日志开始日期。-f : 查看实时日志-t : 查看日志产生的时间戳-tail=10 : 查看最后的 10 条日志。container : 容器名

2020-12-29 09:36:52 407

原创 golang http 解决跨域问题

w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")w.Header().Add("Access-Control-Allow-Headers", "accessToken,appKey,User-Agent,DNT,X-Mx-ReqToken,Keep-Alive,User-.

2020-12-29 09:36:12 898

转载 golang 代码注释规范

注释规范包注释每个包都应该有一个包注释,一个位于 package 子句之前的块注释或行注释。包如果有多个 go 文件,只需要出现在一个 go 文件中(一般是和包同名的文件)即可。 包注释应该包含下面基本信息(请严格按照这个顺序,简介,创建人,创建时间):// @Title // @Description // @Author 创建人 创建时间// @Update 创建人 修改时间结构(接口)注释每个自定义的结构体或者接口都应该有注释说明,该注释对结构进行简要介绍,放.

2020-12-29 09:35:17 1501

原创 golang时间操作

time.Now() 返回当前本地时间。time.Now().Local() 返回采用本地和本地时区,但指向同一时间点的 Time。time.Now().Location 返回 t 的地点和时区信息。time.Now().Unix Unix 将 t 表示为 Unix 时间,即从时间点 January 1, 1970 UTC 到时间点 t 所经过的时间(单位秒)。time.Now().UnixNano UnixNano 将 t 表示为 Unix 时间,即从时间点 January 1, 197.

2020-12-29 09:32:37 3114

转载 xsync 同步脚本的使用

https://blog.csdn.net/nalw2012/article/details/98322637

2020-12-29 09:30:54 316

转载 Git 合并指定文件到另一个分支

经常被问到如何从一个分支合并特定的文件到另一个分支。其实,只合并你需要的那些 commits,不需要的 commits 就不合并进去了。合并某个分支上的单个 commit首先,用 Git log 或 sourcetree 工具查看一下你想选择哪些 commits 进行合并,例如:比如 feature 分支上的 commit 82ecb31 非常重要,它含有一个 bug 的修改,或其他人想访问的内容。无论什么原因,你现在只需要将 82ecb31 合并到 master,而不合并 feature 上的其

2020-12-29 09:25:32 1007

转载 使 gitignore 文件生效

我们应该先把本地的缓存删除,然后再进行 push,操作步骤如下git rm -r --cached . // 删除本地缓存git add . // 添加要提交的文件 git commit -m 'update .gitignore' // 更新本地的缓存

2020-12-29 09:22:44 146

原创 Swoole 从0开始搭建直播平台

Swoole开发基础。          以下所有安装操作 全部基于Linux。(centos 6.8)版本. php7源码编译安装方法(6个步骤)1、先去www.php.net下载最新的php7版本.(建议用php7);2、下载下来然后解压:tar  -xjvf  压缩包名字,然后yum install gcc   (必须有gcc)3、 解压下来之后cd进去 然后输入命名: ./configur...

2018-05-10 14:24:01 11541 16

空空如也

空空如也

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

TA关注的人

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