2020-11-24
关于数据库锁的总结

前言本文主要是在总结MySQL数据库锁时,记录的一些笔记。按锁的粒度划分分为:行锁、页锁、表锁锁定的粒度越小,发生锁冲突的概率越低,可以实现的并发度越高 ;但是对于锁的开销比较大,加锁会比较慢,容易出现死锁。行锁的三种类型Record Lock 单个记录上的锁对索引项加锁,如果innodb引擎的表在建立的时候 没...

Read More
 2020-11-19
阿肝正传之Redis哨兵机制(一)

前言Redis主从同步是提升了可用性,从库挂了,还有多个从库可以使用。但是如果主库挂了,该怎么办呢?这就要提到哨兵机制了。在Redis主从集群中,哨兵机制是实现主从库自动切换的关键机制,有效的解决了主从复制模式下故障转移的问题。哨兵机制的基本流程哨兵机制就是一个运行在特殊模式下的Redis进程,主从库实例运行的同...

Read More
 2020-11-18
阿肝正传之Redis主从同步

前言一门技术光停留在会用的层面远远不够,必须要深入的掌握其原理,然后加以理解和总结,才能叫“会”。本文是在深入了解Redis主从同步原理时,记录的学习笔记。目的Redis提供了主从库模式,实现了Redis的高可用,保证多个实例的数据一致性。主从库之间采用的是读写分离的方式读写分离的架构读操作:主从都可以接受;写操...

Read More
 2020-04-12
TCP协议学习总结(一)

前言本文是学习极客时间《趣谈网络协议》第12节课程时整理的笔记。TCP包头格式源端口号和目标端口号是必不可少,否则数据不知道该分发给哪个应用。包的序号是为了解决乱序的问题。确认序号,是为了解决不丢包的问题。发出去的包都应该要有确认,否则不清楚对方有没有收到;没有收到则会重新发送。状态位:SYN 是发起一个连接,A...

Read More
 2020-03-21
PHP导出Excel的优化

背景针对PHP导出Excel的优化,在我之前的一篇文章里已经做过介绍:关于PHP内存溢出的思考,本文主要是介绍一款高性能的导出组件–xlswriter,他是一个PHP C扩展,官方文档地址,请点击。安装安装pecl当我们发现pecl未安装时,则需要安装pecl。一般情况下,是安装在PHP的安装目录,示例命令如下:...

Read More
 2019-11-16
gocron入门笔记

背景最近在开发过程中,感觉到管理在不同机器上的管理不同定时任务有点麻烦,于是想集中化管理定时任务。经过一番调研,选择了gocron-定时任务管理系统。介绍github地址:https://github.com/ouqiang/gocron优势:基于go语言开发的一款轻量级定时任务集中调度和管理系统,性能高,页面操...

Read More
 2019-10-16
一次定时任务配置错误引发的思考

背景某业务人员反应系统登陆不上去,于是程序员自己试着登陆系统成功了,心里很自信的认为“我的代码没有问题”,便让业务人员再试试。然后业务人员是登陆成功了,但是整个系统用起来很卡,这下程序员意识到是系统的问题了。排查步骤因为刚刚上线了新的功能,想到了配置了定时任务,可能是定时任务配置错误,导致PHP启了过多进程。使用...

Read More
 2019-09-26
关于PHP内存溢出的思考

背景最近做大批量数据导出和数据导入的时候,经常会遇到PHP内存溢出的问题,在解决了问题之后,总结了一些经验,整理成文章记录下。优化点 优化SQL语句,避免慢查询,合理的建立索引,查询指定的字段,sql优化这块在此就不展开了。 查询的结果集为大对象时转数组处理,框架中一般有方法可以转,如Laravel中有toA...

Read More