最近想研究一下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. 一些资源清理
以后希望有时间每一条展开深入了解,并做笔记
分享到:
相关推荐
这个包是最高版本了,google code是1.22,但是这个版本是基础班的1.5版本.是github上源代码经过我打包出来的jar
google上的这个包最多是1.2.2但是github上是1.3,源代码下载下来后,我打包为jar的
memcached 1.4.0 c源代码
memcached的windows下可以运行的代码,win32版本的
分布式缓存技术。代码是开源的,可以参考学习下。
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
mock-http-server.zip,用于测试目的的模拟和代理http服务器。派生自https://github.com/jharlap/mock-http-serverjava工具,用于模拟测试http客户端代码的http服务器行为
cmd代码: 到memcached根目录 1、安装:memcached.exe –d install 2、启动:memcached.exe -d start 此时memcached已经注册为开机启动服务完成安装。 使用参数: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d ...
memcached是一套分布式的快取系统,是一套开放源代码软件,以BSD license授权释出。是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 以下是 memcached 在 Windows 系统下的 x86/x64 版本...
memcached是分布式高效内存对象缓存系统
Memcached是著名的开源分布式缓存系统。 Memcached-1.49 源代码,提供大家学习参考。 更多参考信息请访问 blog.csdn.net/dinglang_2009
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万...
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最新服务器源代码,分析memcached最好的源代码分析材料
缓存服务器memcached代码及使用文档,里面整理了使用的文章及J2EE项目使用demo。有问题可以联系:http://www.0817home.com/
完整的memcached-1.4.5 自动编译包 与文章http://blog.csdn.net/FLxyzsby/archive/2011/05/18/6430106.aspx 对应的代码文件 Windows下编译memcached-1.4.5(32bit和64bit)的代码压缩包
memcached源代码下载.rar