比别人多一点志气,你就会多一份出息 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影
  • 113095

    Linux c 开发 - libevent

    memoryLibevent介绍 libevent是一个事件触发的网络库,适用于windows、Linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。 libevent官方网站 http://libevent.org/ 英文文档 http://www.wangafu.net...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 04644

    Linux c 开发 - Memcached源码分析之存储机制Slabs(7)

    memory前言 前几章节我们介绍了Memcached的网络模型,命令行的解析,消息回应,HashTable,Memcached的增删改查操作以及LRU算法模块。 这一章我们重点讲解Memcached的存储机制Slabs。Memcached存储Item的代码都是在slabs.c中来实现的。 在解读这一章前,我们必须先了解几个概念。 Item 缓存数据存储的基本单元 1. Item是Memcached存储的最小单位 2. 每一个缓存都会有自己的一个Item数据结构 3. Item主要存储缓存的key、v...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 08140

    Linux c 开发 - Memcached源码分析之LRU算法(6)

    memory前言 上一章《Linux c 开发 - Memcached源码分析之增删改查操作(5) 》中,我们讲到了SET命令的操作。当客户端向Memcached服务端SET一条缓存数据的时候,会将生成的Item地址挂到LRU的链表结构上。这一章节,我们主要讲一下Memcached是如何使用LRU算法的。LRU:是Least Recently Used 近期最少使用算法。Memcached的LRU算法分析 Memcached的LRU几种策略 1. 惰性删除。memcached一般不会主动去清除已经过期...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 08435

    Linux c 开发 - Memcached源码分析之增删改查操作(5)

    memory前言 在第二章《Linux c 开发 - Memcached源码分析之命令解析(2)》 和第三章《Linux c 开发 - Memcached源码分析之消息回应(3)》 中我们主要通过Memcached的get命令,分析了Memcached的命令解析和消息回应的模块功能。这一章,我们主要来详细看一下Memcached常用的增删改查操作。在看Memcached的增删改查操作前,我们先来看一下process_command方法。Memcached解析命令之后,就通过process_comman...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 03450

    Linux c 开发 - Memcached源码分析之HashTable(4)

    memory前言 上一章我们讲解了Memcached的消息回应机制《Linux c 开发 - Memcached源码分析之消息回应(3)》。从这一章开始我们慢慢讲解Memcached是如何存储数据的。 讲解本章前,我们先看一个Memcached存储数据的item的基本结构。 //item的具体结构 typedef struct _stritem { //记录下一个item的地址,主要用于LRU链和freelist链 struct _str...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 04880

    Linux c 开发 - Memcached源码分析之消息回应(3)

    memory前言 上一章《Linux c 开发 - Memcached源码分析之命令解析(2)》,我们花了很大的力气去讲解Memcached如何从客户端读取命令,并且解析命令,然后处理命令并且向客户端回应消息。 这一章,我们主要来讲解Memcached回应消息的技术细节。 本章前,我们先需要了解几个知识点(msghdr和iovc)。 msghdr结构:struct msghdr { void *msg_name; socklen_t msg_namelen; ...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 03241

    Linux c 开发 - Memcached源码分析之命令解析(2)

    memory前言 从我们上一章《Linux c 开发 - Memcached源码分析之基于Libevent的网络模型(1)》我们基本了解了Memcached的网络模型。这一章节,我们需要详细解读Memcached的命令解析。 我们回顾上一章发现Memcached会分成主线程和N个工作线程。主线程主要用于监听accpet客户端的Socket连接,而工作线程主要用于接管具体的客户端连接。 主线程和工作线程之间主要通过基于Libevent的pipe的读写事件来监听,当有连接练上来的时候,主线程会将连接交个某...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 08364

    Linux c 开发 - Memcached源码分析之基于Libevent的网络模型(1)

    memory关于Memcached: memcached是一款非常普及的服务器端缓存软件,memcached主要是基于Libevent库进行开发的。Memcached分析 1.  网络模型流程分析 Memcached主要是基于Libevent的事件库来实现网络线程模型的。我们先需要下载memcached的源码包,上面我们已经给出了源码包下载地址。 Memcached的网络线程模型主要涉及两个主要文件:memcached.c 和thread.c文件。 我们这边主要分析tcp的模型。memcac...

    C语言 Memcached, C语言 发布于 2015-04-06
  • 04316

    Linux c 开发 - 结构体

    memory实际的项目开发中,有比较复杂的数据结构。例如学生,有姓名、年龄等属性参数。这个时候使用传统的类型就无法满足我们的需要。C语言的结构体就可以解决这个问题。 1. 定义结构体 结构体都是通过关键字 struct 来定义。例如我们定义一个结构体,包含学生的姓名和年龄:struct student { char *username; int age; };struct为结构体的关键字。student为结构体的名称。2. 结构体变量 结构体变量有多种方式...

    C语言 C语言 发布于 2015-04-06
  • 07251

    Linux c 开发 - Makefile工具

    memoryMakefile是一个c语言的编译工具。如果学过Java,可能会认识Maven工具,makefile也是类似的工作。 Makefile能帮助c语言建立自动化的编译。一旦写好,执行一个make命令就可以编译整个工程。当然编写Makefile文件的时候有很多知识点在里面。这篇文章主要讲解如何编写基础性以及常用的Makefile文件。 1. 没有makefile的编译 我们先看一个例子: val.h和val.c#include <stdio.h> #include <st...

    C语言 C语言 发布于 2015-04-06
  • 03218

    Linux c 开发 - 文件操作

    memory介绍文件操作的基本用法。 常用API 1. 打开文件fopen()FILE *fopen(const char *filename,const char *mode); 打开文件。参数filename指向要打开的文件名,mode表示打开状态的字符串。 mode表:"r" 打开一个用于读取的文本文件 "w" 创建一个用于写入的文本文件 "a" 附加到一个文本文件 "rb" 打开一个用于读取的二进制文件 "wb" 创建一个用于写入的二进制文...

    C语言 C语言 发布于 2015-04-06
  • 03683

    Linux c 开发 - Socket

    memorySocket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个 服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。服务端例子 先看一个支持多线程,多用户连接的阻塞式IO模式的SOCKET例子。 因为使用了线程,所以例子的编译:#include <stdio.h> #include ...

    C语言 C语言 发布于 2015-04-06
  • 04029

    Linux c 开发 - 常用基础

    memory1. 制表符 C语言手册连接 http://c.biancheng.net/cpp/u/hs10/ 32位编译器char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 u...

    C语言 C语言 发布于 2015-04-06
  • 03290

    8.文件操作小结

    memoryC系统把文件当作一个“流”,按字节进行处理。C文件按编码方式分为二进制文件和ASCII文件。C语言中,用文件指针标识文件,当一个文件被打开时,可取得该文件指针。文件在读写之前必须打开,读写结束必须关闭。文件可按只读、只写、读写、追加四种操作方式打开,同时还必须指定文件的类型是二进制文件还是文本文件。文件可按字节,字符串,数据块为单位读写,文件也可按指定的格式进行读写。文件内部的位置指针可指示当前的读写位置,移动该指针可以对文件实现随机读写。

    十三. 文件操作 C语言 发布于 2014-04-21
  • 06613

    7.C语言库文件(头文件)有哪些

    memoryC系统提供了丰富的系统文件,称为库文件。C的库文件分为两类,一类是扩展名为".h"的文件,称为头文件,在前面的包含命令中我们已多次使用过。在".h"文件中包含了常量定义、 类型定义、宏定义、函数原型以及各种编译选择设置等信息。另一类是函数库,包括了各种函数的目标代码,供用户在程序中调用。通常在程序中调用一个库函数时,要在调用之前包含该函数原型所在的".h" 文件。下面给出Turbo C的全部".h"文件。Turbo C头文件: 头文件 ...

    十三. 文件操作 C语言 发布于 2014-04-21
  • 1234...9

    网站状态

    • 栏目分类:49个
    • 发布文章:1313篇
    • 用户评论:690条
    • 开博至今:3979天

    正则速查

    [abc] 匹配中括号中的单个字符,如a或b或c
    [^abc] 匹配除了a、b、c等字符的其他单个字符
    [a-z] 匹配一个字符范围,如a到z
    [a-zA-Z] 匹配一个字符范围,如a-z 或 A-Z
    ^ 匹配行的开始
    $ 匹配行的结束
    \A 匹配一个字符串的开始
    \z 匹配一个字符串的结束
    . 匹配任意单个字符
    \s 匹配空白字符,如空格,TAB
    \S 匹配非空白字符
    \d 匹配一个数字
    \D 匹配非数字
    \w 匹配一个字母
    \W 匹配非字母
    \b 匹配字符边界
    (...) 引用所有括号中的内容
    (a|b) a或者b
    a? 零个或1个a
    a* 零个或多个a
    a+ 1个或多个a
    a{3} 3次重复的a
    a{3,} 3次或3次以上重复的a
    a{3,6} 3到6次重复的a

    修正符

    /g 查找所有可能的匹配
    /i 不区分大小写
    /m 多行匹配
    /s 单行匹配
    /x 忽略空白模式
    /e 可执行模式,PHP专有
    /A 强制从目标字符串开头匹配
    /D 使用$限制结尾字符,则不允许结尾有换行
    /U 只匹配最近的一个字符串;不重复匹配

    最新回复

    • pengcheng: 已解决
    • pengcheng: Oops! It seems that sphinx was b...
    • 券都有: 感谢分享
    • memory: 这是我3年前玩过一次,当时因为安装完后,发现日常办公还好,但是好...
    • sdf: 想问一下,激活工具激活后,后面会出现提示要再次重新激活吗?
    • memory: 你要用碗装我吗?还是要我把扔的扔进你碗里???!!! &^_^&
    • 薛才杰: 同感,快扔到我的碗里来。。。
    • memory: 要说明一下,在大陆及香港的云主机或VPS,都是不支持的。原因都懂...
    • 历史趣谈LishiQtan: 很好的文章,值得收藏
    • memory: 现在回头看,,,这么烂的代码,也是醉了.
    • memory: 有空试试apache的
    • 脚踏实地: rInfo数组是怎么来的
    • 朋友们: 我都是这么建站的
    • memory: 明眼人.
    • 上官元恒: $lunarInfo数组是怎么来的,这是重点
    • memory: 你知道的太多了...
    • yjl: 这个肯定解决的不是空间的问题,可能是复用的问题,有可能是“站群”的问题