标签:PHP开发
 好的代码一定是整洁的,并且能够帮助阅读的人快速理解和定位。好的代码可以加快应用的开发迭代速度,不必花过多的时间来修复 bug 和完善代码。好的代码不但能够使得新的项目成员更容易加入项目,同时方便项目组成员快速做好 Back up。好的代码便于促进团队间交流合作提升开发效率。 代码质量评价标准有编码...
 请用5秒钟的时间查看下面的代码是否存在bug。OK,熟练的程序猿应该已经发现Bug所在了,在第8行和第10行下面我没有添加关键字break; 这就导致这段代码的行为逻辑与我的设计初衷不符了。 缺点一. 语法正确,逻辑错误这就是第一个理由为什么程序猿很少使用switch来做条件判断,对于新手来说忘记...
六星教育了解到,随着金三银四的到来,一大批程序员们纷纷摩拳擦掌,准备即将到来的跳槽面试高峰。与其他行业不同的是,程序员被认为是越跳槽,工资越高的行业。在原公司是没有加薪的出路的,跳出来就有了另一条路。哈哈,开个小玩笑,不要太当真。面对金三银四,六星教育与大家聊聊面试这件事吧。希望能帮助到各位程序员们...
 !! 本文从经典的缓存更新策略谈数据的一致性问题并给出解决方案。 常见的更新策略1. 先更新数据库再删缓存目的:保证此时DB数据最新,由删除后的读操作来load最新数据可能:一个线程在读miss后加载了此时的旧数据,在写线程删除缓存后写了进去结果:缓存还是旧数据!! 这种并发的概率极低。因为这个条...
 本文介绍MySQL与Redis缓存的同步的两种方案通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现解析MySQL的binlog实现,将数据库中的数据同步到Redis 一、方案1(UDF)场景分析:当我们对MySQL数据库进行数据操作时,同时将相应的数据同步到Redis中,同步...
 问题1:消息队列的作用1、 解耦快递小哥手上有很多快递需要送,他每次都需要先电话一一确认收货人是否有空、哪个时间段有空,然后再确定好送货的方案。这样完全依赖收货人了!如果快递一多,快递小哥估计的忙疯了……如果有了便利店,快递小哥只需要将同一个小区的快递放在同一个便利店,然后通知收货人来取货就可以了...
 Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。图片 BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷盘过程,为了提高性能,减少刷盘次数,kafka采用了...
 RDB快照(Redis DataBase)RDB是一种快照存储持久化方式,具体就是将Redis某一时刻的内存数据保存到硬盘的文件当中,默认保存的文件名为dump.rdb,而在Redis服务器启动时,会重新加载dump.rdb文件的数据到内存当中恢复数据。 开启RDB持久化方式开启RDB持久化方式很...
 引入索引生命周期的作用在 Elasticsearch的日常管理中,有很多如系统日志,行为数据等方面的应用场景,这些场景的特点是数据量非常大,并且随着时间的增长索引的数量也会持续增长,然而这些场景基本上只有最近一段时间的数据有使用价值或者会被经常使用(热数据),而历史数据几乎没有作用或者很少会被使用...
 背景Redis 是一个开源的内存数据结构存储系统。可以作为数据库、缓存和消息中间件使用。支持多种类型的数据结构。Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的...
 一. 概述1.1 引言当前参与的项目中会遇到一些线程安全问题,由于业务是多节点部署的,这个时候我们需要分布式锁来保证线程安全问题,所以这里学习总结了几种分布式锁的实现思路。分布式的CAP理论告诉我们任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)...
 1 背景针对共享资源的互斥访问历来是很多业务系统需要解决的问题。在分布式系统中,通常会采用分布式锁这一通用型解决方案。本文将就分布式锁的实现原理、技术选型以及阿里云存储的具体实践进行论述。图1 锁 2 从单机锁到分布式锁在单机环境中,当共享资源自身无法提供互斥能力的时候,为了防止多线程/多进程对共...
 Mysql 一般出现 CPU 负载过高问题的时候,我们都会去看下故障期间的慢sql日志,然后找出全表扫描、索引不合理、函数运算过多的sql,让开发同学优化下。实在不行的话,那就升级CPU硬件,替换更高频率的CPU,1路的升级成2路,2路的升级成四路。这次出现的问题因为关乎到每天的业务处理,所以很多...
 众所周知的玩笑,计算机科学中只有两个难题:缓存失效和命名。缓存失效,我理解为是如何保证缓存一致性。首先说明,所有的方案都是存在问题的,都不能保证100%的一致性,如果严格要求一致性,那么,把缓存干掉吧....那么到底要不要用缓存?用缓存的目的是什么?你的业务能接受什么样的数据一致性?使用之前至少需...
 引言春节前一个悠闲的上午,小航送了我,一袋每日坚果,他看我吃的正香,慢慢问道:”温哥,mysql的排序,有什么要注意的吗,不就是正排倒排吗?”我一听他问我的问题,顿感每日坚果不香了,但是为了技术(mainzi),我装作大师的说道:“正排倒排,当然不是全部,你最少要知道,2个参数,1个优化,一种特殊...
六星教育了解到,在准备学习IT技术的同学们看来,选择一种适合自己,同时自己也喜欢的语言是至关重要的。可是作为一个门外汉,怎么去选择呢?六星教育今天就给大家讲解下三大种编程语言的特点,给各位同学做个参考!首先是Python编程语言,目前来说,它是最火热的语言。优势如下:1.简单易学、可移植、可扩展、可...
 过去几年中,我们一直在使用、构建和宣传消息队列,我们认为它们是很令人敬畏的,这也不是什么秘密。我们相信对任何架构或应用来说,消息队列都是一个至关重要的组件,下面是十个理由: 1、解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,...
  英文缩写 API应用程序接口(英语:Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口...
 HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。...
 HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制...