`
youngerbaby
  • 浏览: 111764 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

memcached代码阅读(-)

 
阅读更多

 

最近想研究一下memcached实现,主要目的是熟悉和学习Linux C的开发,这个对android native开发和服务端的开发都是相通的,下面只是简单的看了下memcached.h和memcached.c main入口函数的源码,先把大概的理解记录一下,还有很多细节没有深入了解,慢慢来把。整个过程看的还是比较吃力的,对libc的库函数很不了解。

memcached版本1.4.9

 

Memcached.h

主要定义了memcached主要的数据结构和方法。

比如几个主要的结构定义:

1. memcached链接conn

2. memcached存储结构_stritem

3. memcached的设置结构settings

4. 全局状态stats

5. 。。。。。。

 

Memcached.c main函数代码阅读

main函数基本流程:

1. 判断libevent版本,需要大于1.3

2. 截获SIGINT信号的处理(这个为什么截获,还没有深入了解)

3. 初始化settings结构的一些信息,主要是memcached运行时的一些参数

4. 初始化udp处理线程数

5. 初始化sasl处理协议(对sasl不太了解)

6. 设置tcp和udp的端口

7. core文件的访问的设置

8. 检查和设置打开文件的数目

9. 用户权限的判断,禁止用root权限运行

10. 如果支持sasl验证,进行响应初始化

11. 守护进程处理,忽略SIGHUP信号的处理(守护进程不处理SIGHUP?这个在确认一下)

12. 处理内存翻页,锁定进程内存翻页到交换区(mlockall)

这个是为了什么?禁止翻页是不是优化访问速度?

13. 初始化libevent主线程

14. 初始化一些全局状态(stats_init)

15. 初始化chunk(slabs_init)??

打问号,需要继续看代码

16. 初始化连接池conn_init

17. 忽略SIGPIPE信号,避免因为访问关闭管道导致进程退出

18. 初始化工作线程(thread_init)

19. 创建assoc 维护线程? assoc还没高明白

20. 初始化时序clock_handler,这个还不太明白

21. socket初始化(需要继续看代码细化过程)

22. 保存进程文件save_pid

23. 开始事件循环event_base_loop

24. 一些资源清理


以后希望有时间每一条展开深入了解,并做笔记
分享到:
评论

相关推荐

    hibernate-memcached-1.5.jar

    这个包是最高版本了,google code是1.22,但是这个版本是基础班的1.5版本.是github上源代码经过我打包出来的jar

    memcached-hibernate-1.3

    google上的这个包最多是1.2.2但是github上是1.3,源代码下载下来后,我打包为jar的

    memcached-1.4.0-rc1.tar.gz

    memcached 1.4.0 c源代码

    memcached-1.2.6-win32-src

    memcached的windows下可以运行的代码,win32版本的

    memcached-1.2.1 -win32以及安装使用方法

    分布式缓存技术。代码是开源的,可以参考学习下。

    Memcached-Java-Client-3.0.2.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    play2-memcached_2.9.1-0.2.4.3.zip

    mock-http-server.zip,用于测试目的的模拟和代理http服务器。派生自https://github.com/jharlap/mock-http-serverjava工具,用于模拟测试http客户端代码的http服务器行为

    Memcached 1.2.1.0 For Windows

    cmd代码: 到memcached根目录 1、安装:memcached.exe –d install 2、启动:memcached.exe -d start 此时memcached已经注册为开机启动服务完成安装。 使用参数: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d ...

    Memcached 1.4.13(Windows 32/64)最新稳定版

    memcached是一套分布式的快取系统,是一套开放源代码软件,以BSD license授权释出。是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 以下是 memcached 在 Windows 系统下的 x86/x64 版本...

    memcached代码和分析

    memcached是分布式高效内存对象缓存系统

    Memcached-1.49 源代码

    Memcached是著名的开源分布式缓存系统。 Memcached-1.49 源代码,提供大家学习参考。 更多参考信息请访问 blog.csdn.net/dinglang_2009

    memcached-1.2.4源代码

    Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万...

    memcached源代码分析

    memcached源代码分析

    memcached源码

    (1、)java_memcached-release_1.6为java工程(内有详细的测试方法和用法)。 (2、)memcached-win32-1.4.4-14为memcached目录。 安装: cmd打开命令窗口,转到解压的目录(memcached-win32-1.4.4-14),输入 ...

    memcached-java链接所需jar包,以及java链接代码

    memcached-java链接所需jar包,以及java链接代码

    memcached1.4.5源代码

    memcached最新服务器源代码,分析memcached最好的源代码分析材料

    缓存服务器memcached代码及使用文档

    缓存服务器memcached代码及使用文档,里面整理了使用的文章及J2EE项目使用demo。有问题可以联系:http://www.0817home.com/

    Windows下编译memcached-1.4.5(32bit和64bit)

    完整的memcached-1.4.5 自动编译包 与文章http://blog.csdn.net/FLxyzsby/archive/2011/05/18/6430106.aspx 对应的代码文件 Windows下编译memcached-1.4.5(32bit和64bit)的代码压缩包

    memcached源代码下载.rar

    memcached源代码下载.rar

Global site tag (gtag.js) - Google Analytics