您现在的位置:首页
--> IM鑫爷
作为21世纪的码农,如果只是想混混工资的话,这篇文章可能不太适合你,但如果想在技术上有所提升,本文也许能帮你照亮前进的道路。程序员不能只是天天埋头写代码,还得关心代码的质量,其实写代码很容易,稍微用心点学都能写,但是要产出好的代码却不是那么容易事,所谓好的代码不是说你完成了某某功能就牛B,在完成了基本功能的同时还有很细节要注意,在各种关于代码质量的书中都的提及到了这样的概念:代码格式、命名规则、功能注释等,虽然这些东西看上去并不能主宰软件的“生与死”,但是谁又能保证一个软件从出生到结束都由一个人维护呢?关于代码规范这个话题我不打算列入本文的内容,原因有二,其一是很多书中都的提及到,我就不必重申;其二是很多程序员其实也很注重这个问题,只是注释多少的问题。那么就标题中的四点来给我们的代码约法四章,让我们这些码农的代码更健壮。
一直有打算写篇关于redis源代码分析的文章,一直很忙,还好最近公司终于闲了一点,总算有点时间学习了,于是终于可以兑现承诺了,废话就到此吧,开始我们的源代码分析,在文章的开头我们把所有服务端文件列出来,并且标示出其作用: adlist.c //双向链表 ae.c //事件驱动 ae_epoll.c //epoll接口, linux用 ae_kqueue.c //kqueue接口, freebsd用 ae_select.c //select接口, windows用 anet.c //网络处理 aof.c //处理AO...
曾经何时我也想到过这样一个问题,redis这样一个高并发、高性能的缓存(或者说是DB)的服务端程序,为何不开放HTTP接口?或许很多人也这么想过,当我正有这个想法的时候,一个崭新的项目诞生了:RedBridge,他是一款能使用http请求就能操作redis中间件,其详细介绍如下: RedBridge 是一款基于redis 的 HTTP API。 使用LUA 直接跟redis 交互。(类似数据库的存储过程) 高效的实现复杂的业务逻辑。
• php多线程扩展
最近在网上和群里都看到很多朋友在讨论php的多线程,也有说不能实现,也有人说没必要,其实php用C语言写出来,只要c能办的,他基本都能办到,所以就来写了一个PHP多线程扩展,代码也不多,也没有考虑太多因素,只是简单的创建线程和退出线程,为了防止创建线程过多对服务器性能造成影响,那么最大支持当前cpu个数X2个线程,如果要创建一个线程代码如下.....
这段时间公司做了个项目,在项目里面用到了redis,爱学习的我又一次翻出了redis的源代码,从头开始看了起来(没看完,哈哈~~),在这一次阅读中把redis的五大数据结构的代码给看了一遍,对于我这么一个菜鸟来说收获颇多,比如他的hash,list结构都没有使用我们平常使用的双向链表,而是使用一种非常节省内存的方式来实现了链表(zipmap和ziplist),还有zset就使用了跳表,其实levelDB也有使用跳表。 Skip List是在有序List(链表)数...
• 红黑树学习笔记
要学习红黑树,那么首先要知道红黑树到底是个什么东西,其实他的定义在网络到随处都可以搜索到,他是一种平衡二叉搜索树,在这个定义里面引入了三个关键词,一是二叉树,另一个是二叉搜索树,第三个是平衡。我们一层一层分析, 二叉树,他的定义是每个节点最多只有两个子树(即左子树和右子树,当然也可以没有子树),如下图是一个简单的二叉树: 对于这样的数据结构,在C语言中通常这样来定义结构体 [c] typedef struct _binary_t...
memcache是什么说略过,大家都懂。这篇文章主要分析memcache的网络处理,memcache的网络处理是基于libevent的库写的,下面依据源代码来一步一步讲解。
其它先不说,直接上张图,为什么呢,看图说话,哈哈。。入主题,上篇我们讲到网络处理,这次讲讲数据存储,从上面图上基本可以看到处理流程,不过忽略了一些细节,但里面有两个地方要值得说一下,在图上也做了标注,就是图中的1和2,分别是内存分配和hashtable管理, 1、内存分配,当一条命令的参数解析完之后,就要为之分配其内存空间,要分配的空间大小=key长度+1+后缀长度+内容长度,这里的后缀长度其实是压缩参数和内容长度的a...
最近几天都在看libevent的源代码,什么是libevent呢?他是一个由C写的基于事件驱动的网络库,使用方便,效率也还不错,利用这个库能很大程度上提高开发效率,而且libevent跨平台支持的也非常好。像memcache就是一个非常典型的例子,既然memcache这么有威望的产品都选择用他,说明这个东西还是值得大家研究的。 因为我是windows,所以关于epool,kqueue什么的都没去看,也没看iocp,花了一天时间看完了select模型的源代码,代码不多...
[ 共9篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [64] android 开发入门
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告