- 博客(177)
- 资源 (1)
- 收藏
- 关注
原创 ATC:go logs 使用
logs日志模块,目前支持的引擎有stdout、file安装go get github.com/adolphlxm/atc/logs使用步骤第一步:引入包import( "github.com/adolphlxm/atc/logs")第二步:添加输出引擎logs.SetLogger("stdout")// 引擎支持第二个参数,配置信息logs.SetLogger("file",`{"
2017-10-20 11:02:14
1182
原创 ATC:go Thrift RPC 使用 (连接池)
RPCRPC引擎目前支持Thrift(client & serve)Thrift安装go get github.com/adolphlxm/atc/rpc/thriftThrift服务端使用步骤第一步:引入包import( "github.com/adolphlxm/atc/rpc/thrift")第二步:初始化服务// 创建服务实例ThriftRPC := thrift.NewTh
2017-10-20 10:59:20
3321
原创 ATC:一个GO应用程序开源框架
ATCATC 是一个快速开发GO应用程序的开源框架,支持RESTful API 及 Thrift RPC的框架.可根据自身业务逻辑选择性的卸载中间件的功能,均支持平滑退出。要求GO版本 >= 1.8当前版本: 0.1.1 (Beta 2017-05-02)稳定版本: 1.0.0 (2017-05)More info atc.wiki老版本GITHUB安装ATCgo get github.com/ad
2017-06-03 11:15:03
2068
原创 C - 数据结构 - 线性表 - 链式实现
上一章节我们研究和学习了线性表的顺序存储结构 特点是逻辑关系上相邻的两个元素在物理位置上也相邻 因此可以随机存取表中任一元素,它的存储位置可用一个简单、直观的公式来表示。弱点: 在作插入或删除操作时,需移动大量元素。 SO: 我们学习另一种表示方法 链式存储结构。链式存储结构不要求逻辑上相邻的元素在物理位置上也相邻它没有顺序存储结构的弱点但同时也失去了顺序表可随机存取的优点单
2016-10-06 00:30:00
1483
原创 C - 数据结构 - 线性表
其实目前网上的各种的都有,只是每个人阅读带给自己的感受是不一样的,只有自己亲手体验过才叫真的体会过,阅读代码的确会给人很多启发,抱着一种学习的心态看待代码,开始正题 线性结构的特点:在数据元素的非空有限集中 1. 存在唯一的一个被称做“第一个”的数据元素 2. 存在唯一的一个被称做“最后一个”的数据元素 3. 除第一个之外,集合中的每个数据元素均只有一个前驱 4.
2016-09-24 23:18:39
923
转载 各种SQL查询技巧汇总
基本常用查询select select * from student;all 查询所有 select all sex from student;distinct 过滤重复 select distinct sex from student;count 统计 select count(*) from student; select count(sex) from student; s
2016-06-01 10:29:06
1973
原创 Unix:基础知识文件和目录
《Unix环境高级编程》ver3是一部非常不错的书籍,学习中遇到的问题和过程整理记录实现ls命令实例Unix——一切皆是文件,文件在Unix环境中是非常重要的东西,Unix文件系统就是一个虚拟层次结构,所有目录都挂载于/根目录,文件夹也可以被认为是一种文件,设备也是一种文件,重要的Socket套接字也是一种文件。#include "incl
2016-04-21 23:54:05
764
原创 Go语言配置文件解析器,类似于Windows下的INI文件.
configPackage config is a Configuration file parser for INI format包 config 是一个简洁方的,支持注释的Go语言配置文件解析器,类似于Windows下的INI文件.配置文件形式为[section] 的段构成, 内部使用 name=value键值对 如果为指定段节点,则默认放入名为[default]的段当中. “#”为注释的开
2016-03-22 09:30:11
2954
原创 Golang之反射reflect包
反射规则在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 每个语言的反射模型都不同(同时许多语言根本不支持反射)。 Go语言实现了反射,所谓反射就是动态运行时的状态。
2016-01-08 03:18:47
4913
原创 PHP内核了解:生命周期及运行模式
PHP运行模式1)CGI(通用网关接口 / Common Gateway Interface) 2)FastCGI(常驻型CGI / Long-Live CGI) 3)CLI(命令行运行 / Command Line Interface) 4)Web模块模式(Apache等Web服务器运行的模式) PHP生命周期
2016-01-05 11:42:57
3330
1
原创 PHP之include/require深入了解
include先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后仍未找到文件则 include 结构会发出一条警告;这一点和 require 不同,后者会发出一个致命错误。如果定义了路径——不管是绝对路径(在
2016-01-04 18:06:42
1243
原创 Golang之字符串格式化
字符串格式化// Go 之 字符串格式化//// Copyright (c) 2015 - Batu//package mainimport ( "fmt")type point struct { x, y int}func main(){ // 格式化整型,使用`%d`是一种 // 标准的以十进制来输出整型的方式 // 有符号十进制整数(int)
2016-01-02 14:00:21
4342
原创 2016依然做一个偏执顽固的程序猿
因为着魔,因为偏执,2016破天荒地的此刻没事还睡不着,就写写博大精深的汉子,平时代码敲多了,码文字已经略感不适。记录下过去,展望下未来,砍砍学习心得和计划。菜鸟上路模糊的2008小鸟出道,第一次接触网站,第一次捣鼓代码,第一次折腾模板,第一次… 总之一切都是新鲜的玩意,不懂,不明,不会,瞎折腾。 如此简单的毕业后忙慌,迷茫,不知路在哪里的我。 学了半年Java,倒腾了HTML,改了改ASP(古
2016-01-01 02:24:56
1286
1
原创 Golang之bytes.buffer
bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{…} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty b
2015-12-26 01:13:01
5286
1
原创 HTTP协议之:TCP连接详解
TCP连接HTTP请求连接过程HTTP是一个应用层的协议,在这个层的协议,是一种网络交互需要遵守的一种协议规范。 1. 浏览器解析出主机名 2. 浏览器查询这个主机名的IP地址(DNS) 3. 浏览器获得端口号 4. 浏览器发起到目标IP:端口的连接,建立一个socket连接。因为socket是通过ip和端口建立的,所以,之前则还有一个DNS解析过程。如把www.baidu.com变成一个i
2015-12-25 18:30:15
3267
2
原创 PHP7:Mongodb API使用
编译安装PHP7参考上一篇介绍:http://blog.csdn.net/liuxinmingcode/article/details/50319145编译安装PHP7 Mongdb扩展#先安装一个依赖库yum -y install openldap-develwget https://pecl.php.net/get/mongodb-1.1.1.tgz/home
2015-12-24 15:45:47
5300
1
原创 HTTP协议之:报文详解
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP协议的主要特点支持客户/服务器模式。简单快速:客户向服务器请求服务时,只需传送请求方法和路径。灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content
2015-12-20 18:05:26
1989
原创 Centos+Nginx+PHP7.0编译安装(和PHP5.6老版本共存)
场景LNMP 当前版本:PHP 5.5.7 为了体验PHP7的速度和性能,加上对新技术的热衷。但是直接切换是不明智的,可能会存在代码不兼容等等问题,因此准备编译安装PHP7,Nginx根据PHP-FastCGI监听端口启用哪个PHP版本。什么是FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。 大多数流行的HTTP server都支持Fast
2015-12-15 18:30:17
7264
1
转载 centos 6.5 x64编译有python的vim7.4 - yantze
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gzwget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gzwget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2下载后,解压tar jxf vi
2015-12-15 10:48:00
1019
原创 Liunx木马排查及纠结蛋碎的过程记录
开场白服务器挂了,原因纠结的查杀过程ifconfig发现网卡的发送、接收数据情况, 网卡eth0累计发送了52.5G 的数据。刚重启不久就这么多数据,不太正常。 另,5M带宽啊,平时最多占用3M,而现在直接跑满,进都进不去。 最后直接被阿里云把服务器停了,说对外进行大量的攻击。。。好吧,纠结,别人不攻击我们就万福了,哪有心情去攻击别人。 $ ll -al /usr/bin/bsd-port/
2015-12-14 19:12:36
1333
转载 MySQL 配置优化
连接请求的变量:1) max_connectionsMySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。数值过小会经常出现ERROR 1040: To
2015-12-08 16:32:56
836
原创 php-fpm 与 Nginx优化总结
PHP-fpm PHP-FPM是一个PHPFastCGI管理器,是只用于PHP的。 php-fpm 已经在 Linux、MacOSX、Solaris 和 FreeBSD 上测试通过。 确信 libxml2(在某些系统上叫做libxml2-devel)已经安装。关于信号处理 SIGINT, SIGTERM 立刻终止 SIGQUIT 平滑终止 SIGUSR1 重新
2015-12-07 17:16:02
2376
原创 Golang同步:原子操作使用
原子操作即是进行过程中不能被中断的操作。针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的针对该值的操作。 为了实现这样的严谨性,原子操作仅会由一个独立的CPU指令代表和完成。GO语言提供的原子操作都是非入侵式的,由标准库sync/atomic中的众多函数代表类型包括int32,int64,uint32,uint64,uintptr,unsafe.Pointer,共六个。这些
2015-11-29 14:10:42
18269
1
原创 Golang同步:条件变量和锁组合使用
条件变量的作用并不是保证在同一时刻仅有一个线程访问某一个共享数据,而是在对应的共享数据的状态发生变化时,通知其他因此而被阻塞的线程。条件变量与互斥量组合使用互斥量为共享数据的访问提供互斥支持条件变量就状态的变化向相关线程发出通知三种操作方法等待通知: wait 阻塞当前线程,直到收到该条件变量发来的通知单发通知: signal 让该条件变量向至少一个正在等待它的通知的线程发送通知,表示
2015-11-26 22:28:11
5348
原创 Golang同步:锁的使用案例详解
互斥锁 互斥锁是传统的并发程序对共享资源进行访问控制的主要手段。它由标准库代码包sync中的Mutex结构体类型代表。只有两个公开方法LockUnlock类型sync.Mutex的零值表示了未被锁定的互斥量。var mutex sync.Mutexmutex.Lock()示例// test for Go//// Copyright (c) 2015 - Batu
2015-11-26 01:19:27
9262
转载 Supervisor使用小记
Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,它提供了大量的功能来实现对进程的管理。程序的多进程启动,可以配置同时启动的进程数,而不需要一个个启动 程序的退出码,可以根据程序的退出码来判断是否需要自动重启 程序所产生日志的处理 进程初始化的环境,包括目录,用户,umask,关闭进程所需要的信号等等 手动管理进程(开始,启动,重启,查看进程状
2015-11-25 10:02:14
2230
转载 Linux Signal及Golang中的信号处理
信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的一种方式。一个信号就是一个异步的通知,发送给某个进程,或者同进程的某个线程,告诉它们某个事件发生了。 当信号发送到某个进程中时,操作系统会中断该进程的正常流程,并进入相应的信号处理函数执行操作,完成后再回到中断的地方继续执行。 如果目标进程先前注册了某个信号的处理程序(signal ha
2015-11-25 09:55:56
2235
原创 Golang time包的定时器/断续器
定时器在time包中有两个函数可以帮助我们初始化time.Timertime.Newtimer函数初始化一个到期时间据此时的间隔为3小时30分的定时器t := time.Newtimer(3*time.Hour + 30*time.Minute)注意,这里的变量t是*time.NewTimer类型的,这个指针类型的方法集合包含两个方法Rest 用于重置定时器该方法返回一个bool类型的值St
2015-10-31 01:51:41
6428
原创 Golang的select/非缓冲的Channel实例详解
select golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 在执行select语句的时候,运行时系统会自上而下地判断每个case中的发送或接收操作是否可以被立即执行【立即执行:意思是当前Goroutine不会因此操作而被阻塞,还需要依据通道的具体特性(缓存或非缓存)】每个case语句里必须是一个IO操作所有channel表达式都会被求值、
2015-10-30 21:19:43
17485
1
原创 PHP7新特性整理介绍篇
概述 PHP7将在2015年10月正式发布,PHP7 ,将会是PHP脚本语言的重大版本更新,同时将带来大幅的性能改进和新的特性,以及改进一些过时功能。 该 发布版本将会专注在性能加强,源自PHP版本树中的phpng分支。在硅谷公司的ZendCon会议,PHP工具厂商Zend技术官方讨论phpng和 PHP7的进度。“(本次升级)真正专注于帮助业界的应用程序显著加强执行速度,再加上,我们在PHP中
2015-10-24 11:56:51
2196
原创 Go语言学习:Channel是什么?
Channel是什么 在Go语言中,Channel即指通道类型。有时也用它来直接指代可以传递某种类型的值的通道。类型表示法chan T 关键字chan代表了通道类型的关键字,T则代表了该通道类型的元素类型。例如:type IntChan chan int 别名类型IntChan代表了元素类型为int的通道类型。我们可以直接声明一个chan int类型的变量:var Int
2015-10-24 10:31:19
2038
原创 快速排序Quick sort - golang
算法原理一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换; 5)
2015-09-18 15:23:13
2059
2
原创 冒泡排序Bubble sort-golang
算法原理比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两
2015-09-18 14:32:32
1037
原创 golang net/http包使用
http客户端import “net/http” http包提供了HTTP客户端和服务端的实现。Get、Head、Post和PostForm函数发出HTTP/ HTTPS请求。package mainimport ( "fmt" "io/ioutil" "net/http")func main() { response, err := http.Get("htt
2015-08-24 13:57:52
2413
原创 Thrift RPC 使用指南实战(附golang&PHP代码)
Thrift RPC 使用指南实战thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。
2015-05-13 17:44:17
9830
4
原创 Mac install Thrift
系统当前环境:OS X Yosemite 10.10.3折腾时间:2015.5.7刚开始尝试通过官方http://thrift.apache.org/ 去编译安装,过程遇到坑无数。其中提示bison版本过低,原因:Xcode中自带的bison是2.3的,而Thrift 0.9.2版本需要bison > 2.5版本。 折腾半天没解决好人提供解决思路:把xcode bison 改个
2015-05-07 21:47:32
3466
2
原创 C 开发学习 - 结构类型(枚举/结构/类型定义)
一、枚举定义:枚举是 一种用户定义的数据类型,它用的关键字 enum 枚举类型名字通常并不真的使用,要用的是在大括号里地名字,因为它们就是常量符合,它们的类型是int,值则依次从0到n。 enum colors {red, yellow, green}语法:enum 枚举类型名称{名字0m, ..., 名字n};案例一:自动计数的枚举////
2015-04-26 23:58:00
1570
原创 PHP解决问题进化论(整理笔记)
查看PHP错误信息多个版本的php或php-cli与php-fpm加载不同的配置打印单步调试PHP进程跟踪查看
2015-03-17 15:41:49
1714
转载 MySQL:如何实现高性能高并发的计数器功能(如:网站点击数)
现在有很多的项目,对计数器的实现甚是随意,比如在实现网站文章点击数的时候,是这么设计数据表的,如:”article_id, article_name, article_content, article_author, article_view……在article_view中记录该文章的浏览量。诈一看似乎没有问题。对于小站,比如本博客,就是这么做的,因为小菜的博客难道会涉及并发问题吗?答案显而易见,
2015-02-27 09:35:09
2838
ICBCSetuplntegration
2019-02-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人