首页 > 代码库 > dat14-memcached

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    chunk size 的最小空间是多少 单位 字节

-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

 

dat14-memcached