自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wintree的专栏

专注于Linux系统编程,网络编程,高性能服务器技术,c/c++技术学习

  • 博客(422)
  • 资源 (5)
  • 收藏
  • 关注

转载 代码搜索引擎方法

开发者的代码搜索工具有很多,包括 Koders、Google、Google Code Search、Krugle [14], SourceForge、GitHub、CodeGenie、Sourcerer、Satsy 等,其中不乏利用了更加语义化的功能,这对于提高搜索的命中率很有帮助。

2015-08-30 00:12:44 703

原创 数据库排名sql,group by 分组查询按照时间最大值

先给出类似的简单表DROP TABLE IF EXISTS `TouTiaoAnchor`;CREATE TABLE `TouTiaoAnchor` ( `HourId` int(10) unsigned NOT NULL, `BetinTime` varchar(40) NOT NULL, `AnchorUid` int(11) unsigned NOT NULL, `ti

2015-07-10 19:26:23 17385 1

原创 工作脚本处理文本

简单的使用shell,而且平时学习一下,如果不动手写的话,真是完全没有啥用啊,所以,代码还是写出来的。把下边的脚本代码贴出来。怕忘记了。涉及到数据库连接,awk使用,日期函数,字符串模糊匹配。#!/bin/bashDIR_DATE=`date +"%Y%m%d" -d "-1 days"`mkdir -p ~/export/$DIR_DATEmyf

2015-06-02 16:10:21 1325 1

转载 NoSQL数据库笔谈(转)

序思想篇CAP最终一致性变体BASE其他I/O的五分钟法则不要删除数据RAM是硬盘,硬盘是磁带Amdahl定律和Gustafson定律万兆以太网手段篇一致性哈希亚马逊的现状算法的选择Quorum NRWVector clockVirtual nodegossipGossip (State Transfer Model)

2015-05-24 18:11:37 5585

转载 巧夺天工的kfifo

Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开发者能从基础的数据结构中,提炼出优美的特性。kfifo就是这样的一类优美代码,它十分简洁,绝无多余的一行代码,却非常高效。关于kfifo信息如下:本文分析的原代

2015-05-20 19:50:00 1071

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-05-13 14:49:36 992

转载 基于共享内存的分布式消息学习笔记

作者:深圳自研业务组  jimwu编辑:上海业务组 alenai 目录:Tbus简介Tbus原理Tbus配置与工具Tbus简单应用Tbus运维应用-为python扩展总结Tbus简介   Tbus是tsf4g(Tencent ServiceFramework for Game,腾讯游戏服务框架)中的基础组件

2015-05-12 12:09:08 10473 5

转载 御龙在天掉线问题定位过程

1.前言掉线是令每个网络游戏开发人员头痛的问题,太频繁的掉线会影响玩家的体验从而影响到整个游戏的口碑。御龙在天是琳琅天上工作室自研的一款国战型的MMO网络游戏,在2012年公测初期,御龙服务器全体开发人员也被掉线这一问题困扰,通过大家长期坚持不懈的定位,掉线问题逐渐下降,给了玩家一个好的体验,获得了玩家的肯定与喜爱。2.定位工具御龙在天是基于互娱的tsf4g

2015-05-12 10:47:35 3945

转载 makefile中的patsubst/notdir/patsubst

1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的Makef

2015-05-11 12:21:14 1643

转载 谷歌开源高效、跨平台的序列化库FlatBuffers

近日,谷歌“Fun Propulsion Labs”团队开源了FlatBuffers。该库的构建是专门为游戏开发人员的性能需求提供支持,它将序列化数据存储在缓存中,这些数据既可以存储在文件中,又可以通过网络原样传输,而不需要任何解析开销。FlatBuffers有如下一些关键特性——访问序列化数据不需要打包/拆包节省内存而且访问速度快——缓存只占用访问数据所需要的内存;不需要

2015-04-09 18:21:27 1752

原创 探究redis和memcached的 LRU算法--------redis的LRU的实现

一直对这redis和memcached的两个开源缓存系统的LRU算法感兴趣。今天就打算总结一下这两个LRU算法的实现和区别。首先要知道什么是LRU算法:LRU是Least Recently Used 近期最少使用算法。相关的资料网上一大堆。http://en.wikipedia.org/wiki/Cache_algorithms#LRU  redis的六种策略rewrite

2015-04-06 23:18:24 8622 1

转载 boost::function用法详解

要开始使用 Boost.Function, 就要包含头文件 "boost/function.hpp", 或者某个带数字的版本,从"boost/function/function0.hpp" 到 "boost/function/function10.hpp". 如果你知道你想保存在 function 中的函数的参数数量,这样做可以让编译器仅包含需要的头文件。如果包含 "boost/functio

2015-04-01 11:47:12 1897

转载 高并发Web服务的演变——节约系统内存和CPU

摘要:现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战。一味地通过增加机器来解决并发量的增长,成本是非常高昂的。结合技术优化方案,才是更有效的解决方法。 【导读】 徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设。一、越来

2015-03-12 10:24:15 1123

转载 服务端架构中的“网关服务器”

这么一个场景:一个要承载高并发、具有高性能的后台服务,往往会有多个不同的应用服务。问题来了,你会怎样设计架构呢?如下图所示,为了共用一个稳定高效的网络处理功能,把所有服务写在一个进程里。接下来悲剧一幕幕就要上演了,如果各个模块是多人协作开发,网络库的作者得想办法设计个插件机制供各个应用挂载,开发时无论是人员或者代码都耦合非常严重,大大影响协作、开发效率,后期要增减一个应

2014-11-14 18:11:02 4668 1

转载 统一接入层方案

Table of Contents1 概述2 技术方案2.1 要考虑的问题2.2 总体架构2.3 负载均衡器选型2.4 高可用方案2.5 会话保持方案2.6 URL资源的统一规划2.7 方案扩展3 实施计划1 概述信息中心网络组已经对应用服务器所在的网络进行划分,应用系统的节点分别部署到网络的接入层、应用层和数据层。这样的划分能够提高应用系统和敏感数

2014-11-13 00:12:18 6599

转载 推荐!国外程序员整理的 C++ 资源大全

关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz 发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Te

2014-11-02 08:11:18 3194 1

转载 分布式文件系统发展史(动态图片,点击就能看到动态模拟)

分布式存储在大数据、云计算、虚拟化场景都有勇武之地,在大部分场景还至关重要。对于一个IT从业人员,学习分布式存储相关基础知识必不可少。今天给大家简要介绍*nix平台下分布式文件系统的发展历史。 1、单机文件系统用于操作系统和应用程序的本地存储。缺点:数据无法再服务器之间共享。典型代表:Ext2、Ext3、Ex4、NTFS、FAT、FAT32、

2014-10-09 10:02:05 2975

原创 FastDFS概述

本篇文章是我上级老大所写。 留在这里为了不弄丢。FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux, FreeBSD等UNIX系统类google FS, 不是通用的文件系统,只能够通过专有API访问,目前提供了C,Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性FastDFS可以看做是基于文件的key-val

2014-10-08 11:08:39 21127 5

原创 FastDFS源码分析之tracker协议分析

本篇博客主要讲解fastdfs中tracker协议的讲解。fastdfs主要是存储文件,直接把整个文件存储到磁盘上,所以,简单直接。但是也有很大的局限性。因此,fastdfs对文件的目录设置和存储是最为核心的。为什么这么突然的讲解这些。因为我已经看了一段时间的fastdfs,主要结构都已经搞的比较清晰了。因此,这篇文章,我就主要一tracker这一部分的协议来分析。

2014-09-30 19:14:29 8434

转载 网络编程之非阻塞socket的连接

补充关于select在异步(非阻塞)connect中的应用,刚开始搞socket编程的时候  我一直都用阻塞式的connect,非阻塞connect的问题是由于当时搞proxy scan  而提出的呵呵  通过在网上与网友们的交流及查找相关FAQ,总算知道了怎么解决这一问题.同样  用select可以很好地解决这一问题.大致过程是这样的:  1.将打开的so

2014-07-28 20:24:53 2185

原创 基于redis ae实现 Linux中的文件系统监控机制(inotify)

(英文部分为转的。代码是个人代码)1 What’s inotify The inotify API provides a mechanism for monitoring file system events. Inotify can be used to monitor individual files, or to monitor directories. When a direc

2014-07-22 12:03:49 2660

原创 基于redis AE的异步网络框架

最近一直在研究redis的源码,redis的高效率令人佩服。在我们的linux机器上,cpu型号为, Intel(R) Pentium(R) CPU G630 @ 2.70GHz Intel(R) Pentium(R) CPU G630 @ 2.70GHz上 set,get 都能达到每秒钟15W的请求处理量,真是佩服这代码的效率。前几篇文章,主要是介绍了基本的代码,比如

2014-07-02 12:35:58 6810 1

转载 redis源码解读----Redis启动都干了啥

让我们直接main函数开始:123456789101112intmain(intargc, char**argv) {    structtimeval tv;     /* We need to i

2014-06-09 14:29:11 1904

转载 Linux下/proc目录简介

经常用到这个目录,所以,转载过来yigong1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如

2014-05-16 15:04:20 1362

原创 redis源码解读之哈希接口————dict.h文件

这篇文章主要是介绍redis的哈希的

2014-05-04 13:03:12 3074 2

原创 redis源码解读之双向链表————adlist.h文件

redis内部最最常见的数据结构就是双向链表,很多数据都是存储到链表内部的。先提供一下链表的一个节点代码typedef struct listNode { struct listNode *prev; struct listNode *next; void *value;} listNode;就是这样子。双向链表的一个迭代器在遍历链

2014-04-22 17:50:09 1951

转载 网络基础知识备忘

1.套接字地址结构1).IPv4套接字地址结构IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在头文件中,如下所示struct in_addr{   in_addr_t s_addr; //32位的IPv4网络字节序} struct sockaddr_in{   uint8_t

2014-04-17 11:27:46 1583

转载 getaddrinfo()函数详解

getaddrinfo()函数详解 1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间。IPv6中引入了getaddrinfo()的新API,它是协议无关的,既可用于IPv4也可用于IPv6。getaddrinfo函数能够处理名字到地址以及服

2014-04-17 10:36:56 3409

转载 twemproxy 简介

twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。 redis作为一个高效的缓存服务器,非常具有应用价值。但是当使用比较多的时候,就希望可以通过某种方式 统一进行管理。避免每个应用每个客户端管理连接的松散性。同时在一定程度上变得可以控制。 搜索了不少的开源代理项目,知乎实现的python分片客户端。node的代理中间层,还有各种rest

2014-04-05 00:09:07 1959

转载 标准库 STL :Allocator能做什么?

Allocator是C++语言标准库中最神秘的部分之一。它们很少被显式使用,标准也没有明确出它们应该在什么时候被使用。今天的allocator与最初的STL建议非常不同,在此过程中还存在着另外两个设计--这两个都依赖于语言的一些特性,而直到最近才在很少的几个编译器上可用。对 allocator的功能,标准似乎在一些方面追加了承诺,而在另外一些方面撤销了承诺。这篇专栏文章将讨论你能用allo

2014-03-26 14:46:50 7583 1

转载 linux的进程与线程

在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么,只是维护应用程序所需的各种资源。而线程则是真正的执行实体,为了让进程完成一定的工作,进程必须至少包含一个线程。进程所维护的是程序所包含的资源(静态资源),如:地址空间,打开的文件句柄集,文件系统状态,信号处理handler等。线程所维护的是运行相关的资源(动态资源),如:运行栈,调度相关的控制信息,待处理的信号集等。

2014-03-09 15:55:13 1918

转载 分布式设计

分布式设计与开发在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括

2014-02-11 10:15:14 1470

转载 Redis源码简要分析

在文章的开头我们把所有服务端文件列出来,并且标示出其作用:adlist.c //双向链表ae.c //事件驱动ae_epoll.c //epoll接口, linux用ae_kqueue.c //kqueue接口, freebsd用ae_select.c //select接口, windows用anet.c //网络处理aof.c //处理AOF文件config.c

2014-02-02 23:42:41 1720 1

转载 应用 Valgrind 发现 Linux 程序的内存问题

转自:http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务

2013-12-02 17:27:51 1290

转载 MySQL存储引擎比较

MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差

2013-12-02 10:55:56 1019

原创 error while loading shared libraries| cannot open shared object file

1、可以用 LD_LIBRARY_PATH 环境变量指定,这个类似于 PATH 机制,比较直观,而且,可以放到 bashrc 中固化下来,也可以放到自己的 .bashrc 中只对本用户起作用;2、如果启用了 ld.so.cache 的话,系统会在 /etc/ld.so.cache 中存储所有可引用的动态链接库。这个文件的内容可以通过 /etc/ld.so.conf 来指定;这个是比较固定的机制

2013-11-24 00:50:02 1492

转载 error while loading shared libraries的解決方法

./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory那就表示系統不知道xxx.so 放在哪個目錄下。這個時候就要在/etc/ld.so.conf中加入xxx.so所在的目錄。 一般而言,有很多so檔

2013-11-12 14:11:35 953

原创 风雨后的彩虹

这篇文章的题目有些小文艺,之所以起了这个名字,是我由于最近一段生活的感受。2013年8月底,完整的经历了项目《美人三国》,解散。面临着工作室成员被人事随便的调到其他部门。感受到非常大的压力和郁闷。我非常喜欢的项目后端也面临着解散。老大一直想留下我们两个核心开发人员。但是感觉像泥菩萨过河。由于被分配到一些很烂的项目组,感觉也是前途一片黯淡,所以,我经过了百般深思熟

2013-10-16 23:12:45 2193 7

转载 网络游戏服务器设计

谈这个话题之前,首先要让大家知道,什么是服务器。在游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为两部分来谈谈网络游戏服务器的设计,一部分是讲如何做好服务器的网络连接,同步,广播以及NPC的设置,另一部分则将着重谈谈哪些逻辑放

2013-09-25 13:43:13 2899

转载 socket阻塞与非阻塞,同步与异步、I/O模型

socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解     在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做

2013-09-14 00:03:07 1877

标准库boost程序库导论(中文版).chm

标准库boost程序库导论(中文版).chm标准库boost程序库导论(中文版).chm标准库boost程序库导论(中文版).chm

2011-08-23

C++ static 用法总结

C++ static 用法总结C++ static 用法总结

2011-08-23

关于c++ 继承多态的深度思考

c++ 继承多态 深度思考c++ 继承多态 深度思考c++ 继承多态 深度思考c++ 继承多态 深度思考

2011-08-23

空空如也

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

TA关注的人

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