
服务器端技术
文章平均质量分 79
ferrari
这个作者很懒,什么都没留下…
展开
-
Thrift安装[转载]
Thrift安装及遇到问题并附带一个例子[转载] 说明: 可能是用windows时间长的关系,总感觉linux下的软件管理很麻烦。 特意说明下:这里的方法非原创,都是在安装过程中遇到问题在搜索之后的整理。作为一种经验整理。 ·安装: 依赖库:基本:--应该是最小集,但我安装这些后还是缺少库。 libboost-de转载 2012-04-07 00:16:21 · 2830 阅读 · 0 评论 -
Redis 2.4:后台线程如何解决aof缺陷?【转】
转自:http://tech.it168.com/a2011/1219/1290/000001290827.shtmlRedis终于在2.4版本里引入了除主线程之外的后台线程,这个事情由来已久.早在2010年2月就有人提出aof的缺陷,提及的问题主要有: ① 主线程aof的每次fsync(everysecond模式)在高并发下时常出现100ms的延时,这源于fsync必不可少的磁盘操转载 2012-09-14 17:11:10 · 1106 阅读 · 0 评论 -
Redis复制与可扩展集群搭建 【转】
转自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-clusterRedis复制流程概述Redis的复制功能是完全建树在之前我们评论辩论过的基于内存快照的持久化策略根蒂根基上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就必然会有内存快照产生,那么起首要重视你的体系内存容量规划,转载 2012-09-14 17:14:42 · 4931 阅读 · 0 评论 -
Memcached源码分析之内存管理 【转】
使用命令 set(key, value) 向 memcached 插入一条数据, memcached 内部是如何组织数据呢 一 把数据组装成 itemmemcached 接受到客户端的数据后, 把数据组装成 item, item 的格式如下: 图1 struct item 的结构 源码中这样定义 struct item: C代码转载 2013-01-14 18:30:32 · 1034 阅读 · 0 评论 -
memcached 之hashtable【转】
memcached中hashtable部分的源码主要分布在assoc.h/c、hash.h/c中,总得来说代码比较简单,这里就稍微介绍一下。 hashtable通常包括哈希函数和解决冲突的方法两个最主要的因素,memcached使用的哈希函数为Bob Jenkins在1996年发明的,定义位于hash.h中,实现在hash.c中,作者与2006年时提出另一个新的hash算法,其具转载 2013-01-14 18:28:41 · 527 阅读 · 0 评论 -
memcached源码分析之线程模型 【转】
memcahced启动时线程处理的流程memcached的多线程主要是通过实例化多个libevent实现的,分别是一个主线程和n个workers线程无论是主线程还是workers线程全部通过libevent管理网络事件,实际上每个线程都是一个单独的libevent实例主线程负责监听客户端的建立连接请求,以及accept 连接workers线程负责处理已经建立好的连接的读转载 2013-01-14 18:31:21 · 610 阅读 · 0 评论 -
Memcached内存管理机制浅析【转】
http://basiccoder.com/memcached-memory-mamagement.htmlMemcached的内存管理在网上也可以搜集到不少不错的文章,新浪的这篇《Memcached深度分析》讲得不错,读别人的文章还是不如自己直接去读源码分析源码来得直接,这里写一下我阅读Memcached源码时对于Memcached内存管理机制的理解。Memcached的代码结构很简单,转载 2013-01-14 18:29:26 · 682 阅读 · 0 评论 -
Memcached中item锁的粒度【转】
在多线程环境中,对于memcached中的item操作,应该对它加锁,如果加所有的item都加一个全局锁,这样对于一把锁来控制所有hash桶中的item,粒度实在是太大了,一个桶的插入删除操作会阻塞另一个桶的操作。如果锁粒度很小的话,例如每个hash桶加锁,那么如果是在hash桶扩容的情况下,一次扩容操作可能涉及到多个桶数据的迁移,这样需要对多个桶的锁进行循环加锁,这样就有些复杂。Memcache转载 2013-01-14 18:32:26 · 1595 阅读 · 0 评论