`
winebibber
  • 浏览: 119515 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

memcached概述

    博客分类:
  • Java
阅读更多

      memcached是一个高性能的、分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等,多用于加速WEB应用、降低数据库负载等。Danga Interactive 开发memcached用来提高 LiveJournal.com 的速度,这个站点每天处理2000万以上的动态页面请求,独立用户有100万左右。memcached把数据库的负载降到了几乎没事可干的地步,并为用户提供很快的页面响应速度,更好的资源利用率和更快的数据库存取操作。

      首先启动一个memcached监护进程,监护进程不需要配置文件,只要在命令行里面加三四个参数就可以了:
        # ./memcached -d -m 2048 -l 10.0.0.40 -p 11211
      这里指定使用2GB内存,监听10.0.0.40的11211端口来启动memcached。因为32位处理器最多只能有4GB的地址空间。如果你确实需要32位的服务器处理4-64GB的内存(使用PAE),则每个使用2-3GB内存。
   
      数据库为了在关系数据库管理系统上实现ACID,使用了锁,导致很多读写阻塞。而memcached从不会阻塞。首先使用缓存的很多用户都是用于WEB。这意味着要分配时间出来做多请求处理给不同的系统,如mod_perl、PHP等等,这是对全局缓存的一种浪费。如果你使用多线程语言和共享内存API,如IPC::Shareable,你的每个线程都拥有独立的缓存。这个也是共享内存的局限性。
   
      memcached服务器和客户端实现了全局缓存。实际上,很推荐你在同一台机器上同时运行WEB结点和memcached结点。这会节省一点网络开销,非常快,它使用 libevent 来处理任意数量的连接。在Linux上,尽可能使用 epoll 来实现。使用非阻塞的网络IO和计算,所以对象在不同的客户端上可能有不同的状态。还使用内置的内存块分配和哈希表算法,确保虚拟内存不会过来捣乱。
   
    你可能感兴趣用户是否会获取一个过期的值。服务器API只有一种获取数据的方法,并有3种提交数据的方法:
     * set 无条件的设置指定的键为给定的值。
     * add 添加到缓存,如果不存在。
     * replace 当存在已有值时,替换一下。
    另外,这3个函数都可以设置过期时间。

分享到:
评论

相关推荐

    memcached源代码分析

    #### 一、Memcached概述与背景 Memcached是一个高效、开源、分布式的内存对象缓存系统,旨在通过减轻数据库负担,加速动态Web应用程序的响应速度。它通过在内存中存储键值对的形式缓存数据,减少数据库的查询次数,...

    memcached_1.4.4.rar

    **Memcached 概述** Memcached 是一个广泛使用的开源、高性能、分布式的内存对象缓存系统,最初由 LiveJournal 的本·杨(Brad Fitzpatrick)开发,并后来在Danga Interactive公司进一步发展。这个系统设计的主要...

    memcached 64 位免费下载

    1. **memcached概述**:memcached是由Danga Interactive公司开发的一款内存键值存储系统,最初用于LiveJournal,后来广泛应用在许多大型网站,如Facebook、Twitter等。它旨在简化动态Web应用程序的数据存储,通过...

    memcached详细安装

    #### 一、Memcached 概述 Memcached 是一款高性能的分布式内存缓存服务器,由 LiveJournal 旗下的 Danga Interactive 公司的 Brad Fitzpatrick 领导开发。它被广泛应用于提高 Web 应用的扩展性和速度,特别是在大...

    memcached全面剖析.pdf

    #### memcached概述与基本概念 **memcached**是一种高性能的分布式内存对象缓存系统,主要用于缓解数据库负载,加快动态Web应用的速度并提升其可扩展性。其核心理念在于通过缓存数据库查询结果或其他常用数据,减少...

    memcached-windows64-1.4安装文件

    **Memcached概述** Memcached是一款高效、轻量级的分布式内存对象缓存系统,它旨在减轻数据库负载,提高Web应用的性能。这个“memcached-windows64-1.4安装文件”是专为Windows 64位操作系统设计的版本,包含安装所...

    Memcached Demo 01.zip

    **Memcached 概述** Memcached 是一个高性能、分布式的内存对象缓存系统,用于减少数据库负载,提高网站性能。它最初由 LiveJournal 的 Danga Interactive 开发,后来被广泛应用在许多大型网站如 Facebook、Twitter...

    memcached-1.4.0-rc1.tar.gz

    一、memcached概述 Memcached设计的目标是简化数据存储,提供快速、简单但有效的缓存解决方案。它基于一个简单的键值对存储模型,支持多种数据类型(如字符串、整数、双精度浮点数),并且通过网络进行通信,采用...

    memcached使用最佳实践(英文版)

    ### 一、Memcached概述 #### 1.1 Memcached是什么? Memcached是一个开源的、高性能的分布式内存缓存系统,旨在减少数据库负载,提高动态Web应用的速度。它通过在内存中缓存数据和对象来加速动态数据库驱动网站的...

    memcached全面剖析

    1. **memcached概述**:memcached是一款高性能、分布式内存对象缓存系统,最初由LiveJournal的Dmitry Vovkunov开发,用于减轻数据库负载,提升Web应用的响应速度。它支持多语言,尤其在PHP社区中广泛应用。 2. **...

    memcached-1.4.20.tar.gz

    **Memcached 概述** Memcached 是一个高性能、分布式内存对象缓存系统,它用于临时存储数据以减轻数据库的负载。作为一个开源项目,它被广泛应用于Web应用开发中,能够提高应用程序的响应速度和整体性能。`...

    Memcached Study

    ### Memcached概述 Memcached是一种高性能的分布式内存缓存系统,广泛应用于加速动态Web应用程序,通过减少对数据库的访问来提升网站性能。其核心特性包括: 1. **高速缓存**:Memcached采用内存作为存储介质,...

    Memcached.docx

    ### Memcached概述 #### 一、Memcached简介 Memcached是一个高效的分布式内存对象缓存系统,主要用于加速动态Web应用程序,减少数据库负担。该系统由LiveJournal的Brad Fitzpatrick开发,随后因其高效能特性被广泛...

    第四十四章:Memcached高性能对象缓存1

    二、Memcached 概述 Memcached 是一款高性能、分布式内存对象缓存系统,最初由 LiveJournal 开发团队设计,主要用于缓解数据库负载,提升网站访问速度。它将所有数据存储在内存中,以一个大型哈希表的形式管理,支持...

    采用Memcached实现分布式Session所需的jar包

    1. **Memcached概述** Memcached是一个开源的、基于内存的、高性能的分布式缓存系统,最初设计用于减轻数据库负载。它通过在内存中存储数据,提供快速的数据访问,适用于缓解Web应用中的session共享和缓存需求。 2...

Global site tag (gtag.js) - Google Analytics