memcached
happylife1527
这个作者很懒,什么都没留下…
展开
-
一致性哈希算法及其在分布式系统中的应用
摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读转载 2012-08-27 10:48:23 · 383 阅读 · 0 评论 -
Memcached源码分析(线程模型)
目前网上关于memcached的分析主要是内存管理部分,下面对memcached的线程模型做下简单分析 有不对的地方还请大家指正,对memcahced和libevent不熟悉的请先google之 先看下memcahced启动时线程处理的流程 memcached的多线程主要是通过实例化多个libevent实现的,分别是一个主线程和n个workers线程 无论是主线程还是转载 2012-12-19 21:47:46 · 314 阅读 · 0 评论 -
Memcached源码剖析系列之内存存储机制(一)
一 内存分配管理机制 memcached是一个高性能的,分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。memcached有一个很有特色的内存管理方式,为了提高效率,默认情况下采用了名为Slab Allocator的机制分配管理内存空间。 memcached文档中关于slab allocator有这么一段话: the primary转载 2012-12-19 21:49:07 · 347 阅读 · 0 评论 -
memcached源码剖析系列之内存存储机制(二)
在上一节中已经分析了memcached的内存分配管理初始化机制,在这节中我们将详细分析memcached中slab的管理与分配机制。slabclass[MAX_NUMBER_OF_SLAB_CLASSES]数组是slab管理器(类型见上节),是memcached内存管理的核心数据结构,起着非常重要的作用。slabclass[i]的内存示意图如下图所示: (1转载 2012-12-19 21:49:56 · 333 阅读 · 0 评论 -
Memcached深度分析(原创)
Memcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。关于这个东西,相信很多人都用过,本文意在通过对memcached的实现及代码分析,获得对这个出色的开源软件更深入的了解,并可以根据我们的需要对其进行更进一步的优化。末了将通过对BSM_Memcache扩展的分析,加深对memcached的使用方式转载 2012-12-19 21:52:09 · 293 阅读 · 0 评论 -
memcached完全剖析–1. memcached的基础
本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaaf转载 2012-12-19 21:56:14 · 260 阅读 · 0 评论 -
memcached全面剖析–2.理解memcached的内存存储
本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaaf转载 2012-12-19 21:56:46 · 333 阅读 · 0 评论 -
memcached全面剖析–3.memcached的删除机制和发展方向
本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaaf转载 2012-12-19 21:57:10 · 282 阅读 · 0 评论 -
memcached全面剖析–5. memcached的应用和兼容程序
本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaaf转载 2012-12-19 21:58:11 · 273 阅读 · 0 评论 -
分布式缓存系统Memcached简介与实践
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活。此时Memcached或许是你想要的。Memcached是什么?Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少转载 2012-12-19 22:13:31 · 284 阅读 · 0 评论 -
memcached源码分析(一): memcached.c主函数分析 执行流程
上文分析了memcached的autoconf过程以及configure, make过程,可以看到,memcached可执行文件是由memcached-memcached.o以及其他文件连接后编译出来的。其main函数在memcached.c中定义。找到main,在其函数中可以得到他做了一下几件事情:变量声明settings_init();使用默认值初始化setting转载 2012-12-19 22:14:57 · 557 阅读 · 0 评论 -
memcached源码分析之线程池机制(二)
在上一篇中已分析了memcached线程池的创建流程,由于上篇篇幅较长,因此将memcached线程池中线程的调度流程另立一篇。先让我们把目光转到主函数中,主线程在调用thread_init函数创建好线程池后,就开始创建监听套接字,memcached支持TCP,UDP,UNIX域套接字,因此相应的要创建三种监听套接字这里我们只分析TCP listening socket的创建(UD转载 2012-12-19 21:48:28 · 296 阅读 · 0 评论 -
memcached全面剖析–4. memcached的分布式算法
本系列文章导航memcached完全剖析–1. memcached的基础memcached全面剖析–2.理解memcached的内存存储memcached全面剖析–3.memcached的删除机制和发展方向memcached全面剖析–4. memcached的分布式算法memcached全面剖析–5. memcached的应用和兼容程序asdfaaf转载 2012-12-19 21:57:35 · 287 阅读 · 0 评论 -
memcached-数据结构
1、item(_stritem)结构体(memcached.h 293行-310行): item是memcached中存储数据的最小单位,是key-value的抽象,还记录了最近访问时间、消亡时间等重要信息。下面根据源代码一一介绍:typedef struct _stritem { struct _stritem *next; //下一个转载 2012-12-19 22:15:29 · 490 阅读 · 0 评论 -
memcache slabs .
http://blog.csdn.net/benbendy1984/article/details/6216453 memcache 使用slab机制对内存进行分配和管理的。 一 整体结构 把内存分成多个层次,在每个层次中,可以有多个page, 所有层次的page大小基本是一直的(为什么不相同,后面介绍),每个page中又分成相同大小的item,里面有多少个转载 2012-12-22 16:14:44 · 416 阅读 · 0 评论 -
memcached源码分析之线程池机制
http://www.cnblogs.com/moonlove/archive/2012/07/10/2584428.html已经个把月没有写长篇博文了,最近抽了点时间,将memcached源码分析系列文章的线程机制篇给整出来,在分析源码的过程中参考了网上的一些资源。该文主要集中于两个问题:(1)memcached线程池是如何创建的,(2)线程池中的线程又是如何进行调度的。一切转载 2012-12-19 21:46:58 · 363 阅读 · 0 评论 -
Ubuntu+Apache+PHP+MySQL+Memcached安装
我的系统环境:Linux version 2.6.28-11-server (buildd@palmer) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #42-Ubuntu SMP(我的是ubuntu10)1、安装apache2和php5 apt-get install apache2 libapache2-mod-php5 ph转载 2012-12-29 11:31:27 · 683 阅读 · 0 评论 -
memcached多线程模型 & nginx 多进程模型
memcached和nginx的并发模型,一个是单进程多线程典范,一个是多进程单线程经典。通过对比来将加深一下对这两种并发模型的理解。首先分析一下两者的应用场景。共同点:两个应用,一个是缓存服务,一个是web服务,都是连接暴多请求频繁,而且对响应时间比较敏感的的应用,在这一点上两者需求一样:大量请求,快速响应。服务端程序基本都这需求,逃也逃不掉。不同点:其实转载 2012-11-22 21:58:52 · 1111 阅读 · 0 评论 -
memcached Master-Worker 模型分析
链接出处memcached,相信我们搞linux后端的农民工都知道!这里简单的分析一下memcached是如何处理大量并发的连接的。如题,memcached是个单进程程序,单进程多线程的程序(linuxer可能会会心一笑,这不就是多进程嘛)。memcached底层是用的 libevent来管理事件的,下面我们就来看看这个libevent的经典应用是如何运转的。其实一开始memcac转载 2012-11-22 22:06:53 · 530 阅读 · 0 评论 -
数据缓存系统-memcached介绍 .
一、背景一个计算机应用系统,如果存在对数据的存取,都离不开缓存,因为好的缓存,可以极大的提高应用系统的性能。memcached就是一个开源的缓存系统,它开始是为网站缓存而开发的,它基于key-value这一通用的数据结构,采用C++开发。二、事件通知机制memcached基于libevent,因此在安装时,必须先安装libevent。对libevent,笔者目前未作深入研究,现转载 2012-12-22 08:42:50 · 343 阅读 · 0 评论 -
memcache源码分析之items,slabs
http://www.cnblogs.com/xianbei/archive/2011/01/18/1924893.htmlitems是memcache用来管理item的封装,采用的hash表和LRU链的形式,关于hash表的操作见我前几天的文章 memcache源码分析之assoc 关于item内容的存储机制简介 item的内容存储是在slab中管理的,为了对内存进行有效转载 2012-12-22 22:46:41 · 976 阅读 · 0 评论 -
memcache 线程模型 .
http://blog.csdn.net/benbendy1984/article/details/6242739Mempool 采用主线程+工作线程的模型,主进程主要是:1创建工作线程 2接受连接并把任务分配给工作线程。子进程主要做具体的工作:解析请求,处理请求。 一 创建工作线程先来看源代码[cpp] view plaincopy转载 2012-12-22 22:55:07 · 414 阅读 · 0 评论 -
Memcached源码拆分:Libevent_Thread
http://www.cnblogs.com/aga-j/archive/2011/11/04/2230603.htmlWorkerThreads.cpp 1 /* 2 #include"libevent_thread.h" 3 #include 4 #include 5 #include"conn.h" 6 #include"cq.h" 7 #i转载 2012-12-23 21:28:55 · 600 阅读 · 0 评论 -
memcached源码分析之hashtable
memcached中hashtable部分的源码主要分布在assoc.h/c、hash.h/c中,总得来说代码比较简单,这里就稍微介绍一下。 hashtable通常包括哈希函数和解决冲突的方法两个最主要的因素,memcached使用的哈希函数为Bob Jenkins在1996年发明的,定义位于hash.h中,实现在hash.c中,作者与2006年时提出另一个新的hash算法,转载 2012-12-23 21:24:21 · 338 阅读 · 0 评论 -
下载并安装Memcache服务器端
服务器端主要是安装memcache服务器端.下载:http://www.danga.com/memcached/dist/memcached-1.4.13.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-2.0.18-stable.tar.gz。(如果你的系统已经安装了lib转载 2012-12-25 21:28:33 · 458 阅读 · 0 评论 -
memcache分析调试 .
http://blog.csdn.net/load_life/article/details/8177835一个星期时间的工作,不可能对 memcache有很深刻的分析.文档本身的目的在于为以后的研究准备一个总结资料.刚接触memcache时,对其设计分 布式的思路感到十分欣喜,因为在中间层以极小的代价实现简单分布式无疑成为一些要求不是很高的分布式应用的一个很好的设计思路,这个特性决定转载 2012-12-27 20:25:57 · 563 阅读 · 0 评论 -
memcached源码剖析系列之内存存储机制
http://www.cnblogs.com/moonlove/tag/memcached/ 一 内存分配管理机制 memcached是一个高性能的,分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。memcached有一个很有特色的内存管理方式,为了提高效率,默认情况下采用了名为Slab Allocator的机制分配管理内存空间。 m转载 2012-12-27 20:21:51 · 513 阅读 · 0 评论 -
memcache内存分配
http://blog.csdn.net/initphp/article/details/8025150一、Memcache内存分配机制 关于这个机制网上有很多解释的,我个人的总结如下。Page为内存分配的最小单位。Memcached的内存分配以page为单位,默认情况下一个page是1M,可以通过-I参数在启动时指定。如果需要申请内存时,memcached会划分转载 2012-12-27 20:30:01 · 563 阅读 · 0 评论 -
Memcached内存管理源码阅读
memcache能进行快速地查找和良好的内存管理,得益于良好的hash查找和内存管理技巧.这两项功能主要由assoc.c和slab.c这两个文件来实现. 下面详细地分析一下每行代码实现slab.c#define POWER_SMALLEST 1 //slabclass数组的最小下标(slabclass 主要是来保存分配好的内存)#define POWER_LARGEST 200转载 2012-12-29 11:29:12 · 661 阅读 · 0 评论