源码

CentOS 6.8 源码安装mysql 5.6

不想你离开。 提交于 2020-01-01 00:42:11
一:卸载旧版本 rpm -qa | grep mysql rpm -e mysql #普通删除模式 rpm -e --nodeps xxx(xxx为刚才的显示的列表) # 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 rm /etc/my.cnf #删除/etc/my.cnf 二:安装编译代码需要的包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel 三:创建mysql用户(但是不能使用mysql账号登陆系统) groupadd mysql useradd -s /sbin/nologin -g mysql mysql 四:下载MySQL 源码 cd /usr/local/src wget -c http://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.33.tar.gz 五:安装 tar zxvf mysql-5.6.33.tar.gz cd mysql-5.6.33/ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1

Java并发源码:ConcurrentHashMap

为君一笑 提交于 2019-12-31 21:28:43
Java并发源码:ConcurrentHashMap 为什么要使用ConcurrentHashMap 不安全的HashMap 效率低下的HashTable ConcurrentHashMap的锁分段技术可以有效提升并发访问率 ConcurrentHashMap的结构 ​ ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成的。 ​ Jdk1.7 Segment是一种可重入锁(继承了ReentrantLock),HashEntry用来存储key-value数据,一个ConcurrentHashMap包含一个Segment数组。 ​ Jdk1.8 ConcurrentHashMap取消了Segment分段锁,采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构类似,数组+链表/红黑二叉树。Java 8在链表长度超过一定阈值(8)时将链表(寻址时间复杂度为O(N))转换为红黑树(寻址时间复杂度为O(log(N)))。 ​ Synchronized只是对首节点进行锁定,只要hash不冲突,就不会产生并发。 ​ 下面是一些ConcurrentHashMap的变量。 /** * Table initialization and resizing control. When negative, the * table

Koa源码浅析

安稳与你 提交于 2019-12-31 17:26:11
Koa源码十分精简,只有不到2k行的代码,总共由4个模块文件组成,非常适合我们来学习。 参考代码: learn-koa2 我们先来看段原生Node实现Server服务器的代码: const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200); res.end('hello world'); }); server.listen(3000, () => { console.log('server start at 3000'); }); 非常简单的几行代码,就实现了一个服务器Server。 createServer 方法接收的 callback 回调函数,可以对每次请求的 req res 对象进行各种操作,最后返回结果。不过弊端也很明显, callback 函数非常容易随着业务逻辑的复杂也变得臃肿,即使把 callback 函数拆分成各个小函数,也会在繁杂的异步回调中渐渐失去对整个流程的把控。 另外,Node原生提供的一些API,有时也会让开发者疑惑: res.statusCode = 200; res.writeHead(200); 修改 res 的属性或者调用 res 的方法都可以改变 http 状态码,这在多人协作的项目中,很容易产生不同的代码风格。

Koa2源码阅读笔记

别说谁变了你拦得住时间么 提交于 2019-12-31 17:21:38
引言 最近空闲时间读了一下 Koa2 的源码;在阅读Koa2(version 2.2.0)的源码的过程中,我的感受是代码简洁、思路清晰(不得不佩服大神的水平)。 下面是我读完之后的一些感受。 Koa的设计理念 Koa 是一个轻量级的、极富表现力的 http 框架。 一个web request会通过 Koa 的中间件栈,来动态完成 response 的处理。 Koa2 采用了 async 和 await 的语法来增强中间件的表现力。 Koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库。 Koa基本组成 Koa源码非常精简,只有四个文件: application.js:框架入口;负责管理中间件,以及处理请求 context.js:context对象的原型,代理request与response对象上的方法和属性 request.js:request对象的原型,提供请求相关的方法和属性 response.js:response对象的原型,提供响应相关的方法和属性 application.js // application.js module.exports = class Application extends Emitter { constructor() { super(); this.proxy = false; // 是否信任 proxy header 参数

读zepto核心源码学习JS笔记(4)--$.fn

只谈情不闲聊 提交于 2019-12-31 12:41:31
根据第一篇整体框架,可以知道$()方法返回的Z函数的实例化;而Z的原型又指向$.fn;所以经过$()处理过的对象,都可以使用$.fn中的方法; 这一篇就记录一下读$.fn的笔记; zepto.Z.prototype = Z.prototype = $.fn 一 内部函数 zepto.match //判断一个元素是否匹配给定的选择器 zepto.matches = function(element, selector) { //如果selector,element没值或者element是普通节点 if (!selector || !element || element.nodeType !== 1) return false var matchesSelector = element.matches || element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector if (matchesSelector) return matchesSelector.call(element, selector) // fall back to performing a selector: var match, parent =

Redis源码解析(1)——源码目录介绍

和自甴很熟 提交于 2019-12-31 02:47:00
概念 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 开始 这里我使用的是redis-2.2.2.tar.gz版本的redis( 下载地址 )首先要对它进行安装,这里我选择使用cygwin工具进行安装,加入我把该压缩包放在F盘下,使用cygwin工具进行shell命令: $ tar xzf redis-2.2.2.tar.gz $ cd redis-2.2.2 $ make 这里的make实际上操作的是Makefile文件,Makefile按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统的命令

Windows编译Nginx源码

拟墨画扇 提交于 2019-12-31 01:23:34
Windows下的Nginx战役,人不作就不会死!就像是拿着麦当劳的优惠券去买肯德基一样,别扭啊    Nginx 是一款轻量级的Web 服务器、反向代理服务器、邮件服务器等等集一大串荣誉于一身的大牌人物!他是一个 俄国 的富家子弟,但对于 老美 这个邻居家的小孩 Windows 却不是那么和善,性格,品相各异!毕竟 不是一个妈生的 孩子,╮( ̄▽ ̄")╭,不是一个妈生的...命运就是那么的捉弄,越是不想发生的、越是不想见到的、越是你躲避的,他就是会跳在你面前,张牙舞爪!有一天,Nginx去老美家办事,完了,没有媒介,2人沟通不畅,磕磕绊绊,好不舒坦... 切回正题,唠叨了半天,我们来看看怎么在Windows上编译Nginx模块,我是知识的搬运工( Nginx官网方法 ) 准备工作:    1、下载 VS2010 + VS2010 SP1 (C++编译环境) ->安装完成   2、下载 MSYS1.0 (GNU环境)-> 安装完成   3、下载 ActivePerl (SSL环境,自行下载 64位 or 32 位)-> 安装完成   4、下载 Mercurial (Nginx源码下载器,自行下载 64位 or 32 位) -> 安装完成   5、下载 PCRE 8.39:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

lnmp-nginx 源码安装

五迷三道 提交于 2019-12-31 01:13:38
安装依赖:yum -y install zlib zlib-devel openssl* pcre pcre-devel gd-devel 下载源码解压:wget http://nginx.org/download/nginx-1.12.2.tar.gz ;tar -zxvf nginx-1.12.2.tar.gz 进入解压后目录 进行编译 安装 ./configure --prefix="/data1/server/nginx" \ --with-pcre \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_degradation_module \ --with-http_stub_status

nginx 的源码安装

一笑奈何 提交于 2019-12-31 00:58:10
安装nginx之前要做的准备工作有:安装如下库 (1)gzip模块需要 zlib 库 (2)rewrite模块需要 pcre 库 (3)ssl 功能需要openssl库 还有一种简单的方法就是 yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel 然后就是解压压缩包,编译安装就行了 1~pcre的安装: 我们可以之间yum 安装 yum -y install pcre* 或者源码安装 cd /usr/local/src wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz/download tar xf pcre-8.39.tar.gz cd pcre-8.39 ./configure make make install 2~openssl的安装 需要ssl的支持,如果不需要,跳过这一步, yum 安装 yum -y install openssl* 源码安装 wget ftp://ftp.openssl.org/source/openssl-1.0.1t.tar.gz tar xf cd ./config make &&