首页 > 代码库 > 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