- 博客(48)
- 收藏
- 关注
原创 PHP扩展安装
收录情况:PECL扩展是被官方收录的扩展,而phpize安装的扩展可能是一些没有在PECL上收录的扩展。安装方式:PECL扩展通过pecl install命令进行自动化安装;而phpize安装的扩展需要手动下载源代码并进行编译安装。适用场景:PECL扩展更适合那些已经被官方收录、且需要快速安装的扩展;而phpize则更适合那些需要自定义编译选项、或者安装尚未在PECL上收录的扩展的场景。综上所述,PECL扩展和phpize安装扩展在定义、安装方式、适用场景等方面存在显著差异。
2025-03-18 11:02:01
316
原创 php进程管理
PHP-FPM通过FastCGI协议与Web服务器(如Nginx)进行通信,采用多进程模型处理PHP请求,管理worker进程的生命周期。当Web服务器接收到一个PHP请求时,它会将该请求转发给PHP-FPM,PHP-FPM会根据配置文件中的参数来创建、管理和回收PHP解释器进程(也称为worker进程),并将请求分配给这些worker进程来处理。php-fpm是一个高性能的php FastCGI管理器,提供了更好的php进程管理方式,可以有效的控制内存和进程,支持平滑重载php配置。
2025-03-14 18:09:50
183
原创 php-fpm
php-fpm(fastcgi process manager)是PHP 的FastCGI管理器,管理PHP的FastCGI进程,提升PHP应用的性能和稳定性php-fpm是一个高性能的php FastCGI管理器,提供了更好的php进程管理方式,可以有效的控制内存和进程,支持平滑重载php配置。PHP-FPM使用FastCGI协议与web服务器(例如:Nginx,Apache)进行通信,采用多进程模型进行处理PHP请求,管理worker进程的生命周期。
2025-02-19 19:24:37
524
原创 mysql 深分页问题(limit)
时间要久是因为,在通过二级索引查找到满足条件的记录的id时,需要在进行一次回表来获取所需要返回的字段的信息,之后在执行limit命令截取响应的记录。limit 100000,10相较于 limit 0,10而言多回表了100000次。所以导致深分页变慢。偏移量越大,mysql就会扫描越多的行,然后在进行回表,然后在抛弃掉偏移量之前的行,之后在返回偏移量后边的行,这样就导致查询性能下降。想办法让标记的位置的列是有序的,并且不重复。然后就可以将偏移量转义到where语句中,来减少回表次数。
2024-02-26 15:50:11
584
原创 mysql索引失效
row_id排序:与全字段排序步骤类似,放入sort_buffer中的数据只包含要排序的字段,等排完续后,在进行回表获取需要返回字段的数据。当要排序的数据单行数据的长度(单行数据的长度为字段所设置的数据类型的大小相加)大于max_length_for_sort_data时,就需要使用row_id排序。辅助索引排序:当sort_buffer快要满的时候,会对sort_buffer中的数据先进行排序,将排好序的数据放入到一个临时的磁盘文件中。然后在重新向sort_buffer中添加数据,一次类推。
2024-02-26 13:57:09
698
原创 mysql 锁
意向锁是为了避免DML操作时行锁与表锁之间的冲突,在InnoDb中添加了意向锁,使得表锁不用检查每行数据是否加锁,使用意向锁来减少表锁的检查。排它锁(X):允许已获取排他锁的事务更新数据,阻止其他事务去获取相同数据集的排他锁和共享锁(不加锁的select语句还是可以执行的)行锁是每次操作锁住对应的数据,锁的力度较小,发生锁冲突的概率较低,并发度最高,在InnoDB引擎中,其数据是基于索引组织的,使用场景:数据库备份,对所有的表锁定,从而获取一致性视图,保证数据的完整性。表共享读锁与表独占写锁互斥。
2024-02-26 09:54:06
953
原创 数据结构-二叉树
平衡二叉树是通过旋转机制来保障平衡的,旋转的规则是:当任意一节点的高度差大于1时,进行旋转(即任意一个节点的左右子树的高度差大于1时进行旋转(通过过插入节点开始,不断的王父节点查找不平衡点))根节点的左子树:根节点的左子节点及其子节点下方的所有节点。根节点的右子树:根节点的右子节点及其子节点下方的所有节点。二叉查找树的规则为:小的存右边,大的村左边,一样的不存。前序:当前节点,左节点,右节点。中序:左节点,当前节点,右节点。左子节点:父节点左下方的节点。右子节点:父节点右下方的节点。根节点:最顶层的节点。
2023-11-29 22:40:52
649
原创 rabbitmq
注意:版本号中带有management的是带有管理端界面的,没有带的是访问不到15672端口的-e 声明环境变量-e RABBITMQ_DEFAULT_USER 设置rabbbitmq默认用户名-e RABBITMQ_DEFAULT_PASS 设置rabbbitmq默认用户密码-v 磁盘映射-v 服务器地址:/var/lib/rabbitmq 持久化 rabbitmq 数据,数据映射到服务器的地址--name 容器名称--hostname 其他容器访问当前容器时,可通过hostname进行访问。
2023-11-29 21:53:19
855
原创 mysql 数据类型中的显示宽度int(display width)
3代表select时当前字段显示的宽度,如果使用zerofill的话,当字段长度小于 显示长度时,左侧会通过0补齐,如果字段长度大于显示长度时,则原样输出。只有数据类型时数据长度表示的是显示长度,当为char类型时,表示的是当前字段可存储的字节数,为varchar时,表示的是可存储的空间的最大值,字符型时,只有char类型为定长字段,text,blob,varchar均为变长。text 不区分大小写,blob区分大小写。
2023-09-29 17:08:01
397
原创 redis-sentinel搭建问题
查看主从服务器中是否 开启保护模式,如果开启了需要设置bind(绑定本机的ip,当前机器可能有 多个网卡,但是只允许,通过bind 设置的网卡才可以访问redis),查看bind设置是否正确,或者关闭保护模式。在生产环境中,为了安全,不要关闭 protected-mode,并设置 requirepass 参数配置密码和 bind 绑定机器的网卡 IP。protected-mode:保护模式,默认开启,如果没有设置密码或者 bind IP,我只接受本机访问(没密码+保护模式启动=本地访问)。
2023-09-27 07:38:02
139
原创 git分支命令
git分支命令前言一、创建分支二、切换分支三、合并分支三、删除分支四、重命名分支总结前言本文包含创建分支,切换分支,删除分支,合并分支一、创建分支git branch 分支名git push origin 分支名 # 将分支同步到远程服务器二、切换分支git checkout 分支名创建并切换分支git checkout -b 分支名三、合并分支git merge 分支名三、删除分支git branch -d 分支名git branch -D 分支名 # 强制删除g
2022-01-13 17:54:40
237
原创 mysql操作
mysql操作1. insert语句2. 更新3. 删除1. insert语句insert [ignore] into 表名 [(字段1,字段2,...)] values(值1,值2,.....) [,values(值1,值2,.....)]ignore让insert语句直插入数据库不存在的记录,或略异常insert语句中可以使用子查询插入数据insert into 表名1 (字段1,字段2,.....) select 字段1,字段2,... from 表2ps:只要select中获
2021-12-03 10:26:14
776
原创 msqyl数据库函数
mysql函数1. 日期函数2. 字符串函数3. 数字函数4. 条件判断1. 日期函数函数功能格式用例now()获取当前日期和事件yyyy-MM-dd hh:mm:ss2021-12-02 13:56:45curDate()获取当前日期yyyy-MM-dd2021-12-02curTime()获取当前事件hh:mm:ss13:56:45date_formate(日期,日期格式)格式化日期date_formate(“2019-09-09”,
2021-12-02 18:17:55
1102
原创 mysql 事务
目录前言1. 事务的ACID属性1.1 原子性1.2 一致性1.3 隔离性前言事务的执行原理,当对数据进行操作时,会将数据拷贝到undo日志中,操作记录会被写到redo日志中,如果执行一半出现异常或者rollback会将undo日志中的文件恢复到数据库文件中1. 事务的ACID属性原子性,一致性,隔离行,持久性1.1 原子性 事务中的所有操作要么全部完成,要么全部失败。事务执行后,不允许停留在中间的某个状态1.2 一致性不管在任意规定的时间,并发事务有多少,都需要保持运行结果的一直性
2021-12-02 17:28:14
346
原创 sql语言四个部分
一、数据定义语言DDL(data definition language)二、数据操作语言DML(data Manipulation language)三、数据查询语言DQL(data definition language)四、数据控制语言DCL(data Control language)一、数据定义语言DDL(data definition language)示例:用于定义数据库,数据表的语句,例如:创建库,删除库,创建表,修改表,删除表(create,alter,drop)二、数据操.
2021-11-30 15:33:23
865
原创 mysql 表操作
提示:mysql表操作一、创建表二、编辑表(alter)1.添加字段2.修改字段(除字段名)3.修改字段(并修改字段名)4.给表重命名三、表约束1. unsigned 无符号类型2. zerofill 自动用0补齐3. auto_increment自增14.null 和 not null5.default设置默认值一、创建表create table [if not exists] 表名( 字段名 字段类型 [字段约束] [comment '注释'] [索引类型], [primary key
2021-11-30 15:23:13
718
原创 mysql 索引
MYSQL索引创建索引删除索引创建索引创建表时,创建索引create table if not exists user( id int(11) unsigned not null auto_increment, username char(20) not null, usernickname varchar(200) not null, birth_date date not null, primary key (id), index username_index(username)
2021-11-30 14:38:58
143
原创 MySQL修改密码及mysql8加密方式
文章目录使用set方法修改直接修改表使用mysqladmin方法忘记密码时,修改密码mysql8修改密码密码修改成功后,需要使用flush privileges;进行权限刷新使用set方法修改set password for 用户名@授权地址 = password(新密码);直接修改表use mysql;update user set password = password(新密码);使用mysqladmin方法mysqladmin -u 用户名 -p 旧密码 password "新密码
2021-11-26 17:37:23
3300
原创 mysql 用户创建与授权
用户创建create user 用户名@授权地址 identified by 密码create user ttt@'%' identified by '123456';用户删除drop user 用户名@授权地址drop user ttt@'%';用户授权grant 权限(多个权限用英文,分隔) on 库名.表名 to 用户名@授权地址 [identified by 用户密码 ]grant select,update on books.* to ttt@localhost i.
2021-11-26 17:19:05
224
转载 synchronized锁
1、 无论synchronized关键字加在方法上还是对象上,如果它作用的对象是非静态的,则它取得的锁是对象;如果synchronized作用的对象是一个静态方法或一个类,则它取得的锁是对类,该类所有的对象同一把锁。2、每个对象只有一个锁(lock)与之相关联,谁拿到这个锁谁就可以运行它所控制的那段代码。3、实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制...
2021-11-19 15:49:08
93
原创 java泛型 及<? extend T> <? super T>
<? extend T> 上界通配符,所描述的元素类型为T或其派生类。 <? extend T> t 只能从t中取元素,而无法为T插入元素。 因t的类型只能为一种 ,所以<? extend T>只能代表一种数据类型要么是T,要么是T的派生类。当向t中插入元素时,编译器不能确定插入的数据的类型和t的数据类型一致,所以禁止插入。当取数据时,t中的数据都可以向上转型为T或者它的基类,避免了一定的类型转换 <? super T> 下节通配..
2021-11-17 15:16:02
362
原创 Propagation.REQUIRES_NEW在当前类中直接掉用所修饰的方法时,失效
直接调用REQUIRES_NEW会失效,需要通过类进行引用
2021-07-07 14:42:59
351
原创 java中mysql插入时间
sql中字段类型为datejava.util.Date dateUntil = new java.util.Date() new java.sql.Date(dateUntil.getTime()) // 要插入的数据sql中字段类型为datetimejava.util.Date dateUntil = new java.util.Date() new java.sql.Timestamp(dateUntil.getTime()) // 要插入的数据sql中字段类型为timejava.util..
2021-07-07 11:56:25
125
原创 函数处理 函数(回调函数)
call_user_func (callback $callback, mixed $parameter = ? , mixed $… = ? ) 把第一个参数当成回调函数进行调用,回到函数中的参数,可以放入第一个参数后边call_user_func_array ( callable $callback , array $param_arr ) 第一个参数为回调函数,回到函数使用数组的形式放入第二个参数上注:回调函数,使用数组进行传递[new 函数,函数名]使用命名空间/ As of P.
2021-06-10 15:59:45
181
原创 mybatis动态sql
where + if <!--where+if 使用where标签可以无参时,不会出现where 有参数时,会剔除多余的and--> <select id="select" resultMap="selectMap" parameterType="Dept"> select * from dept <where> <if test="deptno != null"
2021-05-13 13:48:55
90
原创 网络端口及进程号查询
netstat 用于查看网络端口号netstat -tulpnnetstat -anops 用户查看计算机进程ps -ef | grep 进程名 可以模糊匹配到某写进程
2021-01-14 11:38:51
160
原创 tar解压缩
tar解压缩tar zcvf 压缩到的压缩文件路径 压缩文件tar zcvf test.tar /test/*tar zxvf 要解压的压缩文件路径 -C 要解压到的文件地址tar zxvf test.tar -C ./test
2021-01-11 15:49:14
98
原创 liunx下nginx日志切割
#!/bin/bash#此脚本用于自动分割Nginx的日志,包括access.log和error.log#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件#Nginx日志文件所在目录LOG_PATH=/usr/local/nginx/logs#获取昨天的日期YESTERDAY=$(date -d "yes...
2019-08-07 17:15:52
105
原创 mysql数据导入导出
@数据库导入导出导出使用mysqldummysqldump -u用户名 -p数据库密码 数据库名> 导出文件地址ps:mysqldump -uroot -pmysql test_db> /test_db.sqlmysql导入.sql文件选择数据库source 数据库文件地址;ps:source /test_db.sql;...
2019-08-07 17:00:08
123
原创 学习笔记(01):wordpress插件开发 wordpress模板开发 wp开发教程-wordpress插件开发1-插件 模板开发联系和区别...
会员免费看,http://edu.youkuaiyun.com/lecturer/842右侧可办理会员卡。wordpress插件 模板开发开发是子恒老师《实用技能》视频教程的第4部。详细讲解了wordpress开发过程,内容包含wp插件,模板开发之间的区别和联系,插件开发流程,使用wordpress ui jQuery, 保存和获取数据等等。欢迎反馈,微信号:QQ68183131...
2019-07-12 16:48:38
422
原创 wordpress小工具
wordpress小工具创建一个类文件创建一个类文件用banner小工具为例:(1) 创建一个bnner.php类文件 继承WP_Widget类,改类文件中包含三个函数:1.定义小工具函数(函数名与类名同名)2.小工具前端显示函数(函数名widget)3.后台小工具编辑函数(函数名form)(2)添加钩子 add_action( 'widgets_init', 'd_search...
2019-07-04 17:55:56
472
转载 rsync+inotify文件实时同步
rsync+inotify文件实时同步(1)服务端环境搭建(需要同步的服务器) 1.安装: wget https://download.samba.org/pub/rsync/src/rsync-3.0.6.tar.gz tar -zxvf rsync-3.0.6.tar.gz ./configure --prefix=/usr/local/rsync make make...
2019-05-17 14:53:17
125
原创 支付宝wap异步回调失败问题
支付宝返回数据中对fund_bill_list字段进行了转义,导致签名验证失败,在进行验签之前需要对改字段进行反转一下(htmlspecialchars_decode)
2019-04-30 11:45:04
442
转载 tp5漏洞
1.更改thinkphp/library/think/app.php 找到module函数在获取控制器名的代码下边添加一下代码 if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not ex...
2019-04-22 18:05:11
2976
原创 scp无密码及秘钥创建
当A机器使用scp向B机器同步文件时,可以通过创建秘钥对的形式来建立信任关系。ssh-keygen -t rsa 注意: 1.所有要输入的地方均可直接回车跳过 QUOTE: Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa)::#回车 ...
2019-03-29 18:51:02
719
转载 php 上传文件到其他服务器
php依赖于ssh2扩展可以实现,上传,更改,删除其他服务器文件安装ssh2依赖 libssh - wget https://www.libssh2.org/download/libssh2-1.8.0.tar.gz - tar -xvf libssh2-1.8.0.tar.gz - cd libssh2-1.8.0 - ./configure --prefix=/u...
2019-03-29 18:35:41
641
原创 原生php调试
不修改配置文件error_reporting(E_ALL); //设置错误等级 多个等级需要使用|隔开。值为0时关闭错误报告ini_set(‘display_errors’, 1); //是否提示错误原因ini_set(‘error_log’,‘日志地址’)//关闭错误提示的时候,将错误信息放入到日志中。...
2019-03-27 14:46:55
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人