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

 

 

 

 

posted @ 2016-09-22 09:39  Final233  阅读(217)  评论(0编辑  收藏  举报