自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

原创 redis 事务实现原理

一:简介Redis事务通常会使用MULTI,EXEC,WATCH等命令来完成,redis实现事务实现的机制与常见的关系型数据库有很大的却别,比如redis的事务不支持回滚,事务执行时会阻塞其它客户端的请求执行。二:事务实现细节redis事务从开始到结束通常会通过三个阶段: 1.事务开始 2.命令入队 3.事务执行 我们从下面的例子看下redis > MULTI OKre

2016-08-31 16:53:48 9224 2

原创 Sequelize 事务大并发下造成的死锁问题。

环境Mysql 5.6 Innodb1.起因我们有个需要事物的业务场景,上线之初一直运行正常,可是在晚上高峰的时候一直会有逻辑错误的问题,刚开始绝的是逻辑有问题。在阿里RDS后台发现出现大量的锁,主表的某些数据行持有锁不释放,其它的sql一直等待,知道deadlock报错。因为主表其它业务模块也会用到。所以是一个比较紧急的情况2.错误的代码代码可以简写为:DBSequelize.transac

2016-05-13 11:45:40 7853

原创 用docker搭建公司内部的gitlab 和 wiki

docker run --name gitlab -d \--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \--publish 10022:22 --publish 10080:80 \--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \--

2015-12-05 14:36:29 4374

原创 Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)

Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题) 一、登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下: ?123456789101112+-

2015-11-30 14:00:15 2042

原创 nodejs vim 配置

下载通用配置https://github.com/tlhunter/vimrccd ~git clone git://github.com/tlhunter/vimrc.git .vimln -s ~/.vim/vimrc ~/.vimrc # Optional, needed for some VIM installationstab键自动补全cd ~在 .vimrc 中添加下面配置let

2015-09-30 14:11:33 4176

转载 如何在Linux下使用Markdown进行文档工作

自从使用了markdown,做文档工作就很顺手。我几乎将工作中所有的文档工作都用markdown来完成。最近有了一些新的体验,也发现了一些新的问题。在Linux系统中,编辑markdown可以用retext工具:# Debian/Ubuntusudo apt-get install retextretext Release-Notes.md要将markdown文件转换成ht

2015-09-05 14:16:52 634

转载 使用 Node.js 开发基于 JavaScript 的 RESTful 应用

在 Web2.0 盛行的今天,作为一种可以运行在浏览器客户端的轻量级脚本语言,JavaScript 被越来越多的开发人员所熟悉和掌握。大家印象中的 JavaScript 是简单高效的,运行在客户端的程序,甚至有人认为 JavaScript 只是一个“小玩意”。Node.js 的出现彻底颠覆了以往对 JavaScript 的看法。Node.js 是服务器端的 JavaScript 运行环境,

2015-09-01 16:16:20 1286

原创 Redis 专题二: RDB 与 AOF 持久化

服务器中的数据库Redis服务器将所有数据库都保存在服务器状态结构的db数组中,db数组的每个项都是一个RedisDb结构,一个RedisDb结构数组的长度就代表了数据库的个数。默认情况下Redis的目标数据库是0号数据库,但客户端可以通过执行SELECT命令来切换数据库 在服务器内部,客户端状态redisClient结构的db属性记录了客户端当前的目标数据库,这个属性是一个指向RedisD

2015-08-31 18:33:32 870

原创 Redis 专题一: 数据结构

简单的动态字符串redis没有直接使用C语言传统的字符串表示,而自己构建了一个动态字符串SDS,当redis需要的不仅仅是一个字符串字面量,而是一个可以被秀噶ide字符串值时,redis就会使用sds来表示字符串值,比如在redis的数据库里,包含字符串值的键值对在底层都是由SDS实现的。redis > set name "bugall"ok1.键值对的键是一个字符串对象,对象的底层实现是

2015-08-27 12:25:02 957 1

原创 Mysql专题一 : 引擎

InnoDB 存储引擎innoDB是mysql的默认事务型引擎,也是最重要,使用最广泛的存储引擎。它被设计来处理大量的短期事务,短期事务大部分情况是正常提交的,很少会被回滚。innodb的性能和自动崩溃回复特性,使得它在非事务型存储的需求中也很流行。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑innodb存储引擎innodb的数据存储在表空间中,表空间是由innodb管理的一个黑

2015-08-26 23:03:20 779

原创 如何使用Node Profiler

楔子我们在写代码的时候,往往开始的时候关注功能实现,然后进行性能测试,如果性能满足需求,皆大欢喜,否则,优化之路就开始了。作为一名合格的屌丝码农,应该把性能优化始终铭记在心,哪怕满足需求了,也要想想是否可以做得更好呢。然而,JS作为动态语言,与c/c++有很多不同之处。我们知道,JS代码是JS引擎动态编译的。动态语言的一个巨大优势就是引擎可以根据运行时产生的profile对

2015-08-26 14:59:46 3554

转载 [关于jQuery的事件代理] jQuery的.bind()、.live()和.delegate()之间区别

DOM树首先,可视化一个HMTL文档的DOM树是很有帮助的。一个简单的HTML页面看起来就像是这个样子:事件冒泡(又称事件传播)  当我们点击一个链接时,其触发了链接元素的单击事件,该事件则引发任何我们已绑定到该元素的单击事件上的函数的执行。[javascript] view plaincopy$('a').bind('cli

2015-08-26 12:27:05 1106

原创 Http 专题一:概述

什么是http 当你使用Web浏览器打开一个网站的时候,你需要从网站的远端服务器拉取内容来展示,例如图片,html,css,js等。那么从web浏览器与服务器之间通信是需要统一沟通方式(对于两个来自不同国家的人来说,想要交流首先要统一表达方式,是口语交流还是文字交流)。web浏览器就使用http来实现与服务器之间的通信。 在现代全球因特网中使用的公共语言就是http。tcp/ip与htt

2015-08-25 22:11:52 790

转载 什么是Bower

什么是Bower?Bower是一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。其他一些建立在Bower基础之上的开发工具,如YeoMan和Grunt,这个会在以后的文章中介绍。为什么我会在意Bower?节省时间。为什么要学习Bower的第一个原因,就是它会为你节省寻找客户端的依赖关系的时间。每次我需要安装

2015-08-25 18:14:53 1124

原创 Node 专题一: 起源

Node的诞生2009年3月,Ryan Dahl 第一次在博客上宣布准备基于v8创建一个轻量级的web服务器并提供一套库。2010年年底,Node.js获得Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js,Joyent 是一个提供云计算服务的公司,github上node的源代码的管理就是joyent这个公司,现在github上已经找不到早起ryan上传的node最初

2015-08-25 17:50:31 1422

转载 json与jsonp的区别

前言  由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。  当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须

2015-08-20 09:28:53 480

转载 webkit 与 webcore

最近自从Google推出Chrome浏览器之后,浏览器受到人们更加广泛的关注,网上时而会出现这样那样的评价,作为一个浏览器内核爱好者,希望能乘着大家都关注的东风,能对浏览器内核有更深入的理解,进而能更好的进行Web开发及利用。Chrome浏览器的代码量其实是非常庞大的,要想对其有深入的理解,仅仅编译编译调试调试,是很难深入下去的。让我们还是从其主要部分如多进程管理通信、WebKit、V8、

2015-07-25 13:00:28 652

转载 什么是JavaScript引擎

JavaScript是由Netscape开发的对象脚本语言,其特点是开发简单、功能灵活,目前已广泛应用于WEB页面及服务器应用程序中。HTML本身是静态的、不允许用户干预,但用JavaScript编写的脚本程序就可以在用户的浏览器端运行,可以同用户进行交互,从而实现动态页面。可以将JavaScript与嵌入WEB的大多数对象的事件(如鼠标点击、移动等)相关联,然后用自己的方式处理这些事件。Java

2015-07-23 22:58:59 1928

转载 为什么V8引擎这么快?

转载请注明出处:http://blog.csdn.net/horkychenGoogle研发的V8 JavaScript引擎性能优异。我们请熟悉内部程序实现的作者依源代码来看看V8是如何加速的。作者:Community Engine公司研发部研发工程师Hajime MoritaGoogle的Chrome中的V8 JavaScript引擎,由于性能良好吸引

2015-07-23 22:53:12 1010

转载 JS特性性能缺陷及JIT的解决方案

拜读了David的《Know Your Engines: How to Make Your JavaScript Fast》,David是Mozilla的JS引擎工程师,文章主要介绍了JIT与GC原理,以及如何根据某些基本原理,优化js代码的执行效率,虽然是老文了,但对我来说仍受益匪浅。这里,我根据上文整理了本文,同时,大家也可以从侧面了解下JIT。         近5年来,在主流浏

2015-07-23 22:50:55 1324

原创 iOS的四种方法读取文件内容

intmain(intargc, constchar * argv[]){     @autoreleasepool    {        //第一种方法: NSFileManager实例方法读取数据        NSArray* paths = NSSearchPathForDirectoriesInDoma

2015-07-17 11:35:24 6272

转载 [WebKit] JavaScriptCore解析

先看一下官方的基本介绍,短短几句就塞满了关键字。SquirrelFish,正式名称是JavaScriptCore,包括register-based(基于寄存器的虚拟机), direct-threaded, high-level bytecode engine(字节码引擎).它使用基于内置copy propagation(复制性传播算法)的一次性编译器(one-pass compiler),

2015-07-17 11:08:55 1677

转载 JavaScript核心指南(JavaScript. The Core.)

------------------------------------------------------------------------------零、索引对象(An Object)原型链(A Prototype Chain)构造函数(Constructor)执行上下文栈(Execution Context Stack)执行上下文(Execution Cont

2015-07-17 11:06:27 511

原创 iOS网络框架 AFNetworking

-(void)GetActivationUser{    NSString *url =@"http://app.xxxx.com/music/search?key=%E9%AC%BC%E5%90%B9%E7%81%AF";    //创建请求管理器    AFHTTPRequestOperationManager *requestManager = [[AFHTTPRequest

2015-07-16 17:31:46 911

原创 如何给UINavigationBar添加按钮?

Mads Mobæk:给UINavigationBar添加按钮的示例代码12345678UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"    style:UIBarButtonItemStyleDone target

2015-07-15 16:35:38 2157

原创 mysql中的分区表

一、什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括:与单个磁盘或文

2015-07-14 10:08:33 831 1

原创 Ios textfield 设置大全

//初始化textfield并设置位置及大小  UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式    text.borderStyle = UITextBorderStyleRoundedRect;

2015-06-27 09:53:05 1187

原创 闭包

用JavaScript一年多了,闭包总是让人二丈和尚摸不着头脑。陆陆续续接触了一些闭包的知识,也犯过几次因为不理解闭包导致的错误,一年多了资料也看了一些,但还是不是非常明白,最近偶然看了一下 jQuery基础教程 的附录,发现附录A对JavaScript的闭包的介绍简单易懂,于是借花献佛总结一下。 1.简单的例子首先从一个经典错误谈起,页面上有若干个div, 我们想给它们绑

2015-06-19 10:49:36 912

原创 作用域链

之前写过一篇JavaScript 闭包究竟是什么的文章理解闭包,觉得写得很清晰,可以简单理解闭包产生原因,但看评论都在说了解了作用域链和活动对象才能真正理解闭包,起初不以为然,后来在跟公司同事交流的时候发现作用域和执行环境确实很重要,又很基础,对理解JavaScript闭包很有帮助,所以在写一篇对作用域和执行环境的理解。作用域作用域就是变量和函数的可访问范围,控制着变量和函数的可见

2015-06-19 10:48:49 1178

原创 session的工作原理

session的工作原理 术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以

2015-06-19 09:33:37 891

原创 python的sys.stdout重定向

一些背景sys.stdout 与 print当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n')print 将你需要的内容打印到了控制台,然后追加了一个换行符print 会调用 sys.stdout 的 write 方法以下两行在事实上等价:sys.stdout.write

2015-06-11 16:37:37 999

原创 mongoengine

最近重新拾起Django,但是Django并不支持mongodb,但是有一个模块mongoengine可以实现Django Model类似的封装.但是mongoengine的中文文档几乎没有,有的也是简短的几句介绍和使用.下面我就分享一下我在使用过程中所记录下的一些笔记,可能有点乱.大家可以参考一下.安装mongoengineeasy_install pymongo # 依赖库e

2015-06-11 10:11:07 2007

原创 nginx + mysql + php-fpm 环境

安装 Nginx想在 CentOS 系统上安装 Nginx ,你得先去添加一个资源库,像这样:vim /etc/yum.repos.d/nginx.repo使用 vim 命令去打开 /etc/yum.repos.d/nginx.repo ,如果 nginx.repo 不存在,就会去创建一个这样的文件,打开以后按一下小 i 键,进入编辑模式,然后复制粘贴下面这几行代码,完成以后按

2015-06-06 19:08:33 1147

原创 在 Mac 上搭建 Nginx PHP Mysql 开发环境

其实这个过程跟Linux下安装都差不多,只是部分命令有差别,大同小异。网上看到很多教程都是用 brew 之类的包管理器安装,但是 Mac 自带了 php , 难道还要再装一个第三方的?强迫症果断不能忍,于是就想利用自带的 php-fpm 来搭建,没想到一搭建就是两个小时,在这里把过程整理一下备用,同时也方便需要的人。因为是调试环境,所以没有注重安全方面,有些东西直接 chmod 777 了

2015-06-06 12:07:48 3546

转载 Nagios 安装与配置

一、Nagios简介  Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。  Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形

2015-05-27 16:24:03 680

原创 Redis配置文件详解

# Redis 配置文件# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes#

2015-05-26 14:19:58 995

原创 Redis 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法

错误描述安装Redis 2.8.18时报错:zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directoryzmalloc.h:55:2: error: #error "Newer version of jemalloc required"make[1]: *** [adlist.o] Erro

2015-05-22 11:17:18 45832 13

原创 iftables 官方文档

Iptables 指南 1.1.19Oskar Andreasson     [email protected]    Copyright © 2001-2003 by Oskar Andreasson本文在符合 GNU Free Documentation 许可版本1.1的条件下,可以拷贝、分发、更改,但必须保留绪言 和所有的章节,如印刷成书,封面要包

2015-05-21 15:31:04 2113

原创 iptables 实现防御CC攻击

一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代

2015-05-21 09:59:18 3102

原创 ubuntu 14.04 LTS 安装webbentch压力测试工具

1.安裝ab命令[plain] view plaincopysudo apt-get install apache2-utils  2.ab命令参数说明[plain] view plaincopyUsage: ab [options] [http[s]://]host

2015-05-20 15:11:38 1177

空空如也

空空如也

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

TA关注的人

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