zoukankan      html  css  js  c++  java
  • 分布式缓存系统 Memcached 快速入门

     Memcached介绍  

         Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
      Memcached 顾名思义,意味着 “内存缓存”,所有缓存的内容都在服务器的内存中。内存中的这些缓存数据可以通过 API 的方式被存取。数据是以 key/value 的配对方式存在的,就像一个很大的 Hash 表。
     
     

    Memcached安装/运行

    Memcached 支持许多平台:Linux、FreeBSD、Solaris、Mac OS,也可以安装在Windows上。

    Linux系统安装memcached,首先要先安装libevent库。

    sudo apt-get install libevent ibevent-dev         自动下载安装(Ubuntu/Debian)
    
    yum install libevent libevent-devel                    自动下载安装(Redhat/Fedora/Centos)
    

    安装 Memcached

    Ubuntu/Debian

    sudo apt-get install memcached
    

    Redhat/Fedora/Centos

    yum install memcached
    

    FreeBSD

    portmaster databases/memcached

    运行Memcached

    Memcached命令的运行:

    $ /usr/local/memcached/bin/memcached -h                           命令帮助

    注意:如果使用自动安装 memcached 命令位于 /usr/local/bin/memcached

    启动选项:

    • -d是启动一个守护进程;
    • -m是分配给Memcache使用的内存数量,单位是MB;
    • -u是运行Memcache的用户;
    • -l是监听的服务器IP地址,可以有多个地址;
    • -p是设置Memcache监听的端口,,最好是1024以上的端口;
    • -c是最大运行的并发连接数,默认是1024;
    • -P是设置保存Memcache的pid文件。

    (1)作为前台程序运行:

    从终端输入以下命令,启动memcached:

    /usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
    
    slab class   1: chunk size     88 perslab 11915
    
    slab class   2: chunk size    112 perslab  9362
    
    slab class   3: chunk size    144 perslab  7281
    
    中间省略
    
    slab class  38: chunk size 391224 perslab     2
    
    slab class  39: chunk size 489032 perslab     2
    
    <23 server listening
    
    <24 send buffer was 110592, now 268435456
    
    <24 server listening (udp)
    
    <24 server listening (udp)
    
    <24 server listening (udp)
    
    <24 server listening (udp)
    

    这里显示了调试信息。这样就在前台启动了memcached,监听TCP端口11211,最大内存使用量为64M。调试信息的内容大部分是关于存储的信息。

    (2)作为后台服务程序运行:

    # /usr/local/memcached/bin/memcached -p 11211 -m 64m -d
    

    或者

    /usr/local/memcached/bin/memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid
     
     

    Memcached工作方式分析

    分布式是 Memcached 的主要特性,所以你可以在多台服务器上来安装 Memcached 来组建一个更大的缓存服务器。这样一来,Memcached 可以帮助我们使数据库的压力降到最低, 从而我们可以构建出更快的、更具扩展性的 WEB 应用。

    许多Web应用都将数据保存到 RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。Memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的速度、 提高可扩展性。下图展示了memcache与数据库端协同工作情况:

     

    其中的过程是这样的:
               1.检查用户请求的数据是缓存中是否有存在,如果有存在的话,只需要直接把请求的数据返回,无需查询数据库。

               2.如果请求的数据在缓存中找不到,这时候再去查询数据库。返回请求数据的同时,把数据存储到缓存中一份。
               3.保持缓存的“新鲜性”,每当数据发生变化的时候(比如,数据有被修改,或被删除的情况下),要同步的更新缓存信息,确保用户不会在缓存取到旧的数据。

         Memcached作为高速运行的分布式缓存服务器,具有以下的特点:
    • 协议简单 
    • 基于libevent的事件处理 
    • 内置内存存储方式
    • memcached不互相通信的分布式

    如何实现分布式可拓展性

    Memcached的分布式不是在服务器端实现的,而是在客户端应用中实现的,即通过内置算法制定目标数据的节点,如下图所示:

    参考:

    Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析

    Linux Memcached 安装

  • 相关阅读:
    解决<c:if>无else的问题
    极限挑战----3小时完成OA系统(失败)
    jstl的if标签和forEach标签的解析
    EL表达式
    JSP静态包含和动态包含的区别
    JSP九大隐式对象和四大域对象-----面试
    mybatis学习01--基础认识
    怎样将本地的代码上传到github
    随机数的生成,静态导入,可变参数的方法,方法重载,浮点数的比较
    zookeeper学习2
  • 原文地址:https://www.cnblogs.com/-wenli/p/11441438.html
Copyright © 2011-2022 走看看