摘要:
Redis事务与MySQL事务 不一样。 原子性:MySQL有Undo Log机制,支持强原子性,和回滚。Redis只能保证事务内指令可以不被干扰的在同一批次执行,且没有机制保证全部成功则提交,部分失败则回滚。 隔离性:MySQL的隔离性指多个事务可以并发执行,MySQL有MVCC机制。而Redis 阅读全文
摘要:
APCu 极简概括: PHP 的开源内存缓存扩展,类比Redis,但是一般都用Redis,所以APCu用的很少。 官方文档:https://www.php.net/manual/zh/apcu.configuration.php 解决问题:类比Redis做缓存组件,提升性能,同步数据使用。 适用场景 阅读全文
摘要:
创建表时应当设置not null,添加一个默认值0或''去替代null。 sum('field')的坑 若一列的所有值都是null,那么sum函数的结果不是0,而是null,所以可能会因为值的类型兼容问题,出现意料之外的情况。 null值会有NPE问题。 count('field')的坑 有null 阅读全文
摘要:
进程、线程、协程 进程:应用程序的启动实例,运行起的代码叫进程,有独立的内存空间,类比工厂的P个(P=1单进程,P>1多进程)车间。 线程:线程是CPU调度的最小单位,是进程内的执行单元,多个线程共享所属进程的资源。类比车间内的T个员工(T=1单线程,T>1多线程)车间。 协程:类似线程,协程是用户 阅读全文
摘要:
谨防持久化+未授权访问漏洞入侵服务器 CVE编号找不到,CNVD有一个:CNVD-2015-07557(国家信息安全漏洞共享平台漏洞编号)。 这是我之前写过的文章,漏洞成因、影响范围、POC与对抗方案有详解: 谨防利用Redis未授权访问漏洞入侵服务器 RDB(Redis Database、全量保存 阅读全文
摘要:
场景假设 A表(1000条数据)left join B表(1000条数据)。 嵌套循环(Nested-Loop Join) 极简概括:顾名思义多层循环叠加,由于MySQL条数数量有限,所用for循环而不用while,在MySQL中就是多层for循环。 性能问题:MySQL使用这种作为join方式最简 阅读全文
4.3万字详解PHP+RabbitMQ(AMQP协议、通讯架构、6大模式、交换机队列消息持久化、死信队列、延时队列、消息丢失、重复消费、消息应答、消息应答、发布确认、故障转移、不公平分发、优先级、等)
摘要:
理论(后半部分有实操详解) 哲学思考 易经思维:向各国人讲述一种动物叫乌龟,要学很久的各国语言,但是随手画一个乌龟,全世界的人都能看得懂。 道家思维:努力没有用(指劳神费心的机械性重复、肢体受累、刻意行为),要用心(深度思考、去感悟、透过现象看本质)才有用。 举例:类似中学做不出来的几何题的底层原理 阅读全文
摘要:
源码理解思维的提升 分享一些个人见解。 Laravel里面的某些概念,就像魔术一样,看起来很厉害,当知道魔术怎么变的,就会认为也不过如此。所以不必感觉Laravel里有些概念难以理解。 应当抛除被框架约束思维的枷锁,用PHP设计的角度去思考,关注大概,而不是在在框架层面逐行磨叽。毕竟源码那么多,越是 阅读全文
摘要:
破除困境带你飞 能遇上高并发的,基本都是有点规模的公司,小公司基本都是CRUD。 想去一线城市跳槽,想去有高并发的公司,但是没有高并发经验,没有高并发的经验,就去不了高并发的公司,去不了这样的公司,就没有高并发经验,前狼后虎两头堵的困境,干就完了。 一语道破 超卖问题是属于并发安全问题,在并发情况下 阅读全文
摘要:
温馨提示 不同的组件需要不同的docker配置(例如容器卷,端口,环境变量等),使用你懂得工具看hub.docker.com官方手册。 不要死记硬背,因为这种东西不是天天要写,过段时间就忘了,很容易引起挫败感。 Dockerfile或者Docker-compose的编写,可以安装一些编辑器插件辅助编 阅读全文