zoukankan      html  css  js  c++  java
  • dat14-memcached

    传统WEB架构问题

    许多WEB应用都将数据保存到RDBMS中,应用服务器从读取数据并在浏览器中显示

    随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响

    数据存储位置对比

    性能(从速度来讲)

    CPU缓存>内存>磁盘>数据库

    价格

    CPU缓存>内存>磁盘>数据库

       

    数据分析,处理的能力较强,从性能是最慢的

    哪些数据存储在内存里

    读写频率高的数据

    经常变化的数据

    尽快被保存的数据

       

    memcached是高性能的分布式缓存服务器

    一般使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态WEB应用的速度

    减少数据访问次数,提高动态WEB应用的速度

    特征

    协议简单

    基于libevent的事件处理

    内置内存存储方式

    memcached不互相通信的分布式

       

    内存管理机制

    memcached基于内存,内存管理机制为Slab

    传统内存分配机制

    使用完通过分配的内存后回收内存。这种方式容易产生内存。这种方式容易产生内存碎片并降低操作系统对内存的管理效率

    Slab Allocation机制

    它按照预先规定的大小,将分配的内存分割成特定长度的内存块(chunk),再把尺寸相同的内存块分成组(chunk集合),这些内存块不会释放,可以重复利用。

     

    选项

    -p    指定memcached监听的端口号,默认为11211

    -l    memcached服务器的ip地址

    -u    memcached程序运行时使用的用户身份必须是root用户

    -m    指定使用本机的多少物理内存数据,默认为64M

    -c    memcached服务的最大链接数

    -vvv    显示详细信息

    -n    间是多少 单位 字节

    -f    chunk size 大小增长的倍数,默认1.25倍

    -d    在后台启动

       

    telnet测试memcached

    memcached常用指令

    add name 0 180 10        //变量不存在则添加(0是不压缩)(180是秒)(10是10个字节)

    set name 0 180 10        //添加或替换变量

    replace name 0 180 10        //替换

    get name        //读取变量

    append name 0 180 10        //向变量追加数据

    del name        //删除变量

    stats        //查看状态

    flush_all        //清空所有

       

    memcached缓存刷新

    时间过期

    服务重启

    计算机重启

    空间不足

       

    PHP5.3.3 之后支持PHP-FPM

       

    安装LNMP

     

     

    tar xf libevent-2.0.21-stable.tar.gz

    cd libevent-2.0.21-stable

    ./configure

    make && make install

    ln -sv /usr/local/lib/libevent* /usr/lib

     

    tar xf memcached-1.4.31.tar.gz

    cd memcached-1.4.31

    ./configure

    ./configure --with-php-config=/usr/local/php5/bin/php-config --enable-memcache        php支持

    make && make install

     

    [root@localhost ~]# memcached -p 11211 -uroot -m 64 -c 200 -vvv -n 4 -f 2 –d

    slab class 1: chunk size 56 perslab 18724

    slab class 2: chunk size 112 perslab 9362

    slab class 3: chunk size 224 perslab 4681

    slab class 4: chunk size 448 perslab 2340

    slab class 5: chunk size 896 perslab 1170

    slab class 6: chunk size 1792 perslab 585

    slab class 7: chunk size 3584 perslab 292

    slab class 8: chunk size 7168 perslab 146

    slab class 9: chunk size 14336 perslab 73

    slab class 10: chunk size 28672 perslab 36

    slab class 11: chunk size 57344 perslab 18

    slab class 12: chunk size 114688 perslab 9

    slab class 13: chunk size 229376 perslab 4

    slab class 14: chunk size 458752 perslab 2

    slab class 15: chunk size 1048576 perslab 1

    <26 server listening (auto-negotiate)

    <27 server listening (auto-negotiate)

    <28 send buffer was 229376, now 268435456

    <32 send buffer was 229376, now 268435456

    <30 server listening (udp)

    <28 server listening (udp)

    <34 server listening (udp)

    <29 server listening (udp)

    <31 server listening (udp)

    <32 server listening (udp)

    <35 server listening (udp)

    <33 server listening (udp)

     

    [root@localhost ~]# netstat -antup |grep memcached

    tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 130347/memcached

    tcp 0 0 :::11211 :::* LISTEN 130347/memcached

    udp 0 0 0.0.0.0:11211 0.0.0.0:* 130347/memcached

    udp 0 0 :::11211 :::* 130347/memcached

     

    vim /usr/local/php5/etc/php.ini

    extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226"

    extension=modulename.so

     

     

     

     

  • 相关阅读:
    python返回函数与匿名函数
    Session&Cookie
    write RE validation
    hello2 source anaylis
    Filter
    Development descriptor
    web.xml配置详解
    Annotation
    injector
    container
  • 原文地址:https://www.cnblogs.com/fina/p/5895045.html
Copyright © 2011-2022 走看看