自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

草样涂荼

用于学习交流

  • 博客(121)
  • 收藏
  • 关注

原创 缓存穿透&缓存击穿

对于缓存,大家肯定都不陌生,不管是前端还是服务端开发,缓存几乎都是必不可少的优化方式之一。在实际生产环境中,缓存的使用规范也是一直备受重视的,如果使用的不好,很容易就遇到缓存击穿、雪崩等严重异常情景,从而给系统带来难以预料的灾害。为了避免缓存使用不当带来的损失,我们有必要了解每种异常产生的原因和解决办法,从而做出更好的预防措施。而缓存穿透是指缓存和数据库中都没有的数据,这样每次请求都会去查库,不会查缓存,如果同一时间有大量请求进来的话,就会给数据库造成巨大的查询压力,甚至击垮 db 系统。比如说查询 id

2022-07-12 16:58:24 384 1

原创 spark 任务优化

1.过滤掉不符合预期的热点key,例如由于日志信息丢失导致某个字段产生大量空值2.加入随机因素,打散热点key3.使用map join解决小表关联大表造成的数据倾斜问题大量的小文件会影响Hadoop集群管理或者Spark在处理数据时的稳定性:spark.sql.parquet.enableVectorizedReader=true– 小文件合并的阈值set spark.sql.mergeSmallFileSize=268435456;– 小文件合并的task中,每个task读取的数据量set sp

2022-07-05 14:59:16 1300 1

原创 mapreduce任务优化

当SQL中包含Join/GroupBy/PartitionBy/DistributedBy等操作时,通过对上述操作所用到的列进行统计,通常就能够找到造成数据倾斜的热点key1.过滤掉不符合预期的热点key,例如由于日志信息丢失导致某个字段产生大量空值2.加入随机因素,打散热点key3.使用map join解决小表关联大表造成的数据倾斜问题map join是指将做连接的小表全量数据分发到作业的map端进行join,从而避免reduce task产生数据倾斜;hive.auto.convert.join

2022-07-05 14:40:06 591

转载 在 PHP 中养成 7 个面向对象的好习惯

在 PHP 编程早期,PHP 代码在本质上是限于面向过程的。过程代码 的特征在于使用过程构建应用程序块。过程通过允许过程之间的调用提供某种程度的重用。 但是,没有面向对象的语言构造,程序员仍然可以把 OO 特性引入到 PHP 代码中。这样做有点困难并且会使代码难于阅读,因为它是混合范例(含有伪 OO 设计的过程语言)。使用 PHP 代码中的 OO 构造 — 例如能够定义和使用类、能够构建使用继承的

2017-10-11 10:38:19 428

转载 【PDO扩展】lastInsertId函数返回0的原因

【PDO扩展】lastInsertId函数返回0的原因 问题在使用PHP的PDO扩展插入数据的时候,有时候需要获取到最后插入记录的ID作为返回信息。要怎么才能实现这个需求呢?lastInsertId函数 使用PDO的lastInsertId函数。但是,最近在使用的过程中发现有时候lastInsertId函数返回的是0。为什么会这样呢?先来看看lastInsertId函数在PHP

2017-09-03 09:04:27 1654

转载 CentOS 7 安装 MySQL

环境CentOS 7.1 (64-bit system)MySQL 5.6.24依赖MySQL 依赖 libaio,所以先要安装 libaioyum search libaio # 检索相关信息yum install libaio # 安装依赖包检查 MySQL 是否已安装yum list installed | grep mysql如果有...

2017-08-02 12:03:50 330

转载 php BC高精确度函数库

php BC高精确度函数库 php BC高精确度函数库 php bc math 包含了:相加,比较,相除,相减,求余,相乘,n次方,配置默认小数点数目,求平方; 这些函数在涉及到有关金钱的计算时比较有用 两个高精度数比较 工作中遇到一种情况,0.00 != 0 int bccomp ( string leftoperand,stringl...

2017-07-27 17:53:50 487

转载 nginx安装(centos6版本)

安装安装Nginx依赖包yum install -y pcre pcre-develyum install -y openssl openssl-devel将下载的Nginx源码包上传到/home下 然后解压tar zxvf nginx-1.9.9.tar.gz进入到解压文件下cd nginx-1.9.9创建Nginx的用户组及用户...

2017-07-26 14:08:52 439

转载 laravel依赖注入原理

laravel依赖注入浅析laravel容器包含控制反转和依赖注入,使用起来就是,先把对象bind好,需要时可以直接使用make来取就好。 具体分析参照:http://laravelacademy.org/post/769.html通常我们的调用如下。$config = $container->make('config');$connection = new Connection($this-

2017-06-07 11:17:04 5473

转载 Dependency Inversion Principle 依赖反转原则

Dependency Inversion Principle 依赖反转原则Introduction 介绍We have reached our final destination in our overview of the five SOLID design principles! The final principle is the Dependency Inversion pri...

2017-06-06 17:04:45 750

转载 Interface Segregation Principle 接口隔离原则

Interface Segregation Principle 接口隔离原则Introduction 介绍The Interface Segregation principle states that no implementation of an interface should be forced to depend on methods it does not use. Have...

2017-06-06 17:04:21 529

转载 Liskov Substitution Principle 里氏替换原则

Liskov Substitution Principle 里氏替换原则Introduction 介绍Don’t worry, the Liskov Substitution Principle is a lot easier to understand than it sounds. This principle states that you should be able to u...

2017-06-06 17:03:48 530

转载 Open Closed Principle 开放封闭原则

Open Closed Principle 开放封闭原则Introduction 介绍Over the life time of an application, more time is spent adding to the existing codebase rather than constantly adding new features from scratch. As yo...

2017-06-06 17:01:57 478

转载 Single Responsibility Principle 单一职责原则

Single Responsibility Principle 单一职责原则Introduction 介绍The “SOLID” design principles, articulated by Robert “Uncle Bob” Martin, are five principles that provide a good foundation for sound applica...

2017-06-06 17:01:26 498

转载 Extending The Framework 扩展框架

Extending The Framework 扩展框架Introduction 介绍Laravel offers many extension points for you to customize the behavior of the framework’s core components, or even replace them entirely. For example, ...

2017-06-06 17:00:42 461

转载 Applied Architecture Decoupling Handlers 实用做法:解耦处理函数

Applied Architecture Decoupling Handlers 实用做法:解耦处理函数Introduction 介绍Now that we have discussed various aspects of sound application architecture using Laravel 4, Let’s dig into some more specific...

2017-06-06 16:59:54 544

转载 Application Structure 应用结构

Application Structure 应用结构Introduction 介绍Where does this class belong? This question is extremely common when building applications on a framework. Many developers ask this question because they...

2017-06-06 16:59:17 1223

转载 Service Providers 服务提供者

Service Providers 服务提供者As Bootstrapper 他是引导程序A Laravel service provider is a class that registers IoC container bindings. In fact, Laravel ships with over a dozen service providers that manage t...

2017-06-06 16:58:33 1409

转载 Interface As Contract 接口约定

Interface As Contract 接口约定Strong Typing & Water Fowl 强类型和小鸭子In the previous chapters, we covered the basics of dependency injection: what it is; how it is accomplished; and several of benefi...

2017-06-06 16:56:40 1532

转载 The IoC Container 控制反转容器

The IoC Container 控制反转容器Basic Binding 基础绑定Now that we’ve learned about dependency injection, let’s explore inversion of control containers. IoC containers make managing your class dependencies m...

2017-06-06 16:55:47 880

转载 Dependency Injection 依赖注入

Dependency Injection 依赖注入The Problem 遇到的问题The foundation of the Laravel framework is its powerful IoC container. To truly understand the framework, a strong grasp of the container is necessary. ...

2017-06-06 16:54:35 760

转载 彻底理解thunk函数与co框架

ES6带来了很多新的特性,其中生成器、yield等能对之前金字塔式的异步回调做到很好地解决,而基于此封装的co框架能让我们完全已同步的方式来编写异步代码。这篇文章就对生成器函数(GeneratorFunction)及框架thunkify、co的核心代码做比较彻底的分析。co的使用还是比较广泛的,除了我们日常的编码要用到外,一些知名框架也是基于co实现的,比如被称为下一代的Nodejs web框架的k

2017-05-12 17:11:24 1117

转载 nodejs异步流程控制co 模块

万恶的回调 对前端工程师来说,异步回调是再熟悉不过了,浏览器中的各种交互逻辑都是通过事件回调实现的,前端逻辑越来越复杂,导致回调函数越来越多,同时 nodejs 的流行也让 javascript 在后端的复杂场景中得到应用,在 nodejs 代码中更是经常看到层层嵌套。以下是一个典型的异步场景:先通过异步请求获取页面数据,然后根据页面数据请求用户信息,最后根据用户信息请求用户的产品列表。过多的回调

2017-05-12 14:11:09 13138

原创 PHP JSON_ENCODE 不转义中文汉字的方法

iOS程序中不识别读取到的JSON数据中 \u开头的数据。 PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据。 网上很多,但是其实都是错误的,正确的方法是在json_encode 中加入一个参数 JSON_UNESCAPED_UNICODE json_encode($data, JSON_UNESCAPED_UNICODE); //必须PHP5.4+官网的说明:htt

2017-05-05 11:14:07 436

转载 Node版本切换n

n 是Node的一个模块,作者是TJ Holowaychuk(鼎鼎大名的Express框架作者),就像它的名字一样,它的理念就是简单:安装npm install -g n安装完成之后,直接输入n后输出当前已经安装的node版本以及正在使用的版本(前面有一个o ),你可以通过移动上下方向键来选择要使用的版本,最后按回车生效。n 0.10.1 ...

2017-05-02 18:52:08 23879 1

转载 Javascript 严格模式详解

一、概述除了正常运行模式,ECMAscript 5添加了第二种运行模式:”严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。 设立”严格模式”的目的,主要有以下几个:   - 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;   - 消除代码运行的一些不安全之处,保证代码运行的安全;   - ...

2017-05-02 18:42:58 226

转载 Mysql分区表使用的一些限制和需要注意的地方

MySQL分区策略都基于两个非常重要的假设:查询都能够过滤(prunning)掉很多额外的分区、分区本身并不会带来很多额外的代价。而事实证明,这两个假设在某些场景下会有问题。下面介绍一些可能会遇到的问题。NULL位会使分区过滤无效 关于分区表一个容易让人误解的地方就是分区的表达式的值可以是NULL:第一个分区是一个特殊分区。假设按照PARTITION BY RANGE YEAR(or

2017-04-27 20:03:00 622

转载 MySQL自动分区脚本

一、使用说明: 1.此脚本为分区后,定时自动增加分区.(被自动分区的表,一定要先手动分几个区) 2.每隔15天,定时器会执行一个存储过程,对分区日期最后的那天再往后新增15个分区. 3.Script里面Auto_partitions.sql 为存储过程 4.Script里面Timer_event.sql 为定时事件脚本 5.MySQL5.5默认并没有开启EVENT机制,需要在my.cnf...

2017-04-27 19:48:47 680

原创 NetBeans无法使用编码GBK安全地打开该文件

用NetBeans打开包含路径里面的UTF-8编码的文件时,提示:NetBeans无法使用编码GBK安全地打开该文件。  用文本编辑器打开NetBeans安装目录下etc\netbeans.conf文件,找到”netbeans_default_options=”字段,在后面添加” -J-Dfile.encoding=UTF-8″。  原来是:netbeans_default_options="-J-

2017-04-21 09:26:23 1075

转载 AngularJS路由 $state服务、路由事件、获取路由参数

1 ui-sref、$state.go 的区别ui-sref 一般使用在 …;<a ui-sref="message-list">消息中心</a>$state.go(‘someState’)一般使用在 controller里面;.controller('firstCtrl', function($scope, $state) { $state.go('login'); });这两个本质

2017-04-17 11:48:56 6744

原创 AngularJS 深入理解 $scope

$scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了 $scope就在视图和控制器之间建立了一个通道,基于作用域视图在修改数据时会立刻更新 $scope,同样的 $scope发生改变时也会立刻重新渲染视图.有了 $scope 这样一个桥梁,应用的业务代码可以都在 controller 中,而数据都存放在controller 的 $sc

2017-04-14 14:30:51 300

转载 15个你必须知道的Facebook开源项目

Facebook为了争当开源第一大厂,已经把自家很多好东西都拿了出来贡献给开源世界,在开源之路上一骑绝尘,根本停不下来。Facebook开源项目涉及的领域有移动工具多样化、大数据、客户端web库、后台运行时和基础设施,还有通过开放计算项目涉及到的服务器和存储硬件等等。Facebook的GitHub账户有274个代码库,收到了39000次fork、提交了79000个commit,拥有242000个关注

2017-04-12 13:43:49 2325

转载 Laravel Facade 实现原理揭秘

在使用Laravel 框架的时候会看到很多 Cache::get() 这样的用法,称之为 Facade,门面。 但是代码中即没有看到使用 Cache 相关的命名空间,且在 Composer 自动加载中也没有相关的自动加载规则。那这是如何实现的呢?让我们从框架源码去发现。Laravel 的入口文件是 public/index.PHP,此文件载入了 autoload.php, app.php 2个文件

2017-04-11 20:55:55 637

转载 nrm —— 快速切换 NPM 源

以前我们介绍过cnpmjs.org和最近推出的淘宝 npm 两个 NPM 镜像。除此之外,还有一些国外的 NPM 镜像。不同地区访问不同的镜像速度可能有差异,然后各个镜像各自都可能有少数包暂时没有同步,因此,有时候需要切换 NPM 镜像。相比每次切换时都手动指定相应参数,使用nrm 要方便的多。nrm 是一个 NPM 源管理器,允许你快速地在如下 NPM 源间切换:npm cnpm strong

2017-04-07 12:13:14 1129

转载 Yii2 输出xml格式数据的方法

php中对xml的处理,虽然说实际开发中目前用的少了,但是难免会用到,用到的时候呢,总结起来还是稍稍有那么一丁点的麻烦。 我们来看看yii2中是怎么对xml进行处理的。会超乎你想象的简单哦。 我们以输出xml格式的数据为例。 既然是输出,必然就涉及到web请求与响应了,不熟悉的可以先去了解下HTTP协议。 yii2中支持以下几种返回格式,均可自定义配置。 HTML: implemented

2017-03-15 08:36:31 1237

转载 PHP开启opcache方法

说明PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的)。对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法。  PHP开启opcache方法1、打开php.ini文件2、找到:[opcache],设置为:[opcache]; dll地址zend_extension=php_opcache.dll

2017-03-14 14:18:44 412

转载 深入理解PHP内存管理之谁动了我的内存

首先让我们看一个问题: 如下代码的输出,var_dump(memory_get_usage());$a = "laruence";var_dump(memory_get_usage());unset($a);var_dump(memory_get_usage());输出(在我的个人电脑上, 可能会因为系统,PHP版本,载入的扩展不同而不同): int(90440) ...

2017-03-10 10:42:27 210

原创 PHP数组实现栈和队列:push,pop,shif,unshift

尽管在PHP中允许直接访问某个数组单元,但PHP仍提供了各种有趣的方式来处理数组。特别要说的是,某些函数使PHP数组非常容易的实现了一个栈或队列。array_pop这个array_pop函数会删除并返回数组的最后一个元素。 在下面的这个例子中,你将会看到在给定一个数组的3个元素中,如何删除最后一个元素的值(索引最大的元素)并返回这个值。$stack = array("orange", "banan

2017-03-10 09:01:52 4652

转载 NULL 值与索引

NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的。由于NULL存在着无数的可能,因此NULL值也不等于NULL值,所以与NULL值相关的操作同样都为NULL值。正是基于这样一个特性,对于NULL值列上的B树索引导致了is null/is not null不走索引的情形,下面描述了NULL值与索引以及索引

2017-03-09 08:31:26 411

转载 swoole_server中内存管理机制

swoole_server启动后内存管理的底层原理与普通php-cli程序一致。具体请参考Zend VM内存管理方面的文章。 局部变量 在事件回调函数返回后,所有局部对象和变量会全部回收,不需要unset。如果变量是一个资源类型,那么对应的资源也会被PHP底层释放。function test(){ $a = new Object; $b = fopen('/data/t.log

2017-03-08 09:19:10 1481

空空如也

空空如也

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

TA关注的人

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