Memcached是什么/strong>
是一个开源的,高性能,高并发的分布式缓存系统(存内存的缓存系统)
软件名称:Memcached-1.4.24.tar.gz
客户端名称:Memcache-2.25.tar.gz
Memcached的作用:
通过自身内存中缓存关系型数据库的查询结果,减少数据库自身被访问的次数,以提高动态web应用的速度,提高 站架构的并发能力和扩展性
1:电商的商品分类功能不会经常变动,可以实现放入memcache里,然后在对外进行数据访问,这个叫“数据预热”
2:作为集群sesson会话共享存储
特性:
- 协议简单,采用文本的协议,telnet/nc等命令就能操作memcached
- 支持epoll/kqueue异步I/O模型,使用libevent作为事件处理机制
- key/value键值数据类型
- 全内存缓存,效率高
- 支持分布式集群(通过一致性hash算法)
安装:
#检查是否安装
rpm -qa libevent libevent-devel nc telnet
#安装管理工具及依赖
yum install libevent libevent-devel nc telnet -y
#安装memcache
yum install memcached -y
#查看路径
which memcached
/usr/bin/memcached
#启动
memcached -m 16m -p 11211 -d -u root -c 8192
#常用参数
-m:使用多大内存(默认64,最大1024) -l 监听地址
-p:端口(默认11211) -P PID保存的文件
-d:后台运行 -M 内存不够时禁止LRU(清除数据),满了 错
-u :用户 -n key+value+flags分配的最小内存空间,默认48字节
-c:并发连接数(默认1024) -f chunk size增长因子,默认1.25
#查看端口
lsof -i:11211
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcached 2201 root 26u IPv4 12720 0t0 TCP *:memcache (LISTEN)
memcached 2201 root 27u IPv6 12721 0t0 TCP *:memcache (LISTEN)
memcached 2201 root 28u IPv4 12724 0t0 UDP *:memcache
memcached 2201 root 29u IPv6 12725 0t0 UDP *:memcache
#启用多实例(增加一个端口就行了)
memcached -m 16m -p 11212 -d -u root -c 8192
#语法
set key1 0 0 6
command key flags exptime(过期时间,0不过期) 写入内容value大小字节数rn
插入 set
查询 get
删除 delete
更新替换 replace(数据存在才会替换)
#进入memcache
telnet 127.0.0.1 11211
#写入 取出 删除 数据
set user01 0 0 7 #7字符要与下面存的内容相同
daxian1 #7个字符
STORED #成功
get user01 #通过key 取出数值
VALUE user01 0 7 #取出
daxian1 #显示
delete user01 #删除
quit #退出
#nc的用法
printf “set key1 0 0 6rndaxianrn”|nc 127.0.0.1 11211
#取值
printf “get key1 rn”|nc 127.0.0.1 11211
VALUE key1 0 6
daxian
END
#删除
printf “delete key1 rn”|nc 127.0.0.1 11211
==============================实战=======================
准备好lnmp环境
至少能出现phpinfo
可以测试了
vim /application/nginx/html/blog/mem_test.php
$memcache->connect(‘192.168.70.121’, 11211) or die (“Could not connect Mc server”);
$memcache->set(‘key’,’daxian hello’);
$get= $memcache->get(‘key’);
echo $get;
访问
http://blog.daxian.com/mem_test.php
调整chunk大小
memcached -f 2 -vvv -u root
slab class 1: chunk size 96 perslab 10922
slab class 2: chunk size 192 perslab 5461
slab class 3: chunk size 384 perslab 2730
slab class 4: chunk size 768 perslab 1365
slab class 5: chunk size 1536 perslab 682
slab class 6: chunk size 3072 perslab 341
slab class 7: chunk size 6144 perslab 170
slab class 8: chunk size 12288 perslab 85
slab class 9: chunk size 24576 perslab 42
slab class 10: chunk size 49152 perslab 21
slab class 11: chunk size 98304 perslab 10
slab class 12: chunk size 196608 perslab 5
slab class 13: chunk size 393216 perslab 2
slab class 14: chunk size 1048576 perslab 1
调整成1.25
memcached -f 1.25 -vvv -u root
slab class 1: chunk size 96 perslab 10922
slab class 2: chunk size 120 perslab 8738
slab class 3: chunk size 152 perslab 6898
slab class 4: chunk size 192 perslab 5461
slab class 5: chunk size 240 perslab 4369
slab class 6: chunk size 304 perslab 3449
slab class 7: chunk size 384 perslab 2730
slab class 8: chunk size 480 perslab 2184
slab class 9: chunk size 600 perslab 1747
slab class 10: chunk size 752 perslab 1394
slab class 11: chunk size 944 perslab 1110
slab class 12: chunk size 1184 perslab 885
slab class 13: chunk size 1480 perslab 708
slab class 14: chunk size 1856 perslab 564
slab class 15: chunk size 2320 perslab 451
slab class 16: chunk size 2904 perslab 361
chunk size 96 perslab 10922
算法 96 * 10922
echo 96 * 10922/1024|bc
都是接近1M
==========================状态================
telnet 192.168.70.121 11211
stats
STAT pid 2201 #pid
STAT uptime 242312 #服务已运行描述
STAT time 1522640902 #服务当前时间
STAT version 1.4.4 #版本
STAT pointer_size 64 #操作系统指针大小
STAT rusage_user 5.462169 #进程累积用户
STAT rusage_system 4.229357 #进程累积系统时间
STAT curr_connections 10 #当前连接数
STAT total_connections 18 #总的连接
STAT connection_structures 11 #分配的连接结构树
STAT cmd_get 5 #get请求数
STAT cmd_set 3 #set请求数
STAT cmd_flush 0 #flush请求数
STAT get_hits 4 #命中
STAT get_misses 1 #命中miss 百分比 命中/命中+miss
STAT delete_misses 1 # delete未命中数
STAT delete_hits 2 #delete 命中次数
STAT incr_misses 0 #incr未命中数
STAT incr_hits 0 # incr命中数
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0 #认证命令处理次数
STAT auth_errors 0 #认证失败处理次数
STAT bytes_read 232 #读取总次数
STAT bytes_written 238 #发送总字节数
STAT limit_maxbytes 16777216 #分配的内存总大小
STAT accepting_conns 1 #接收新的连接
STAT listen_disabled_num 0 #失效监听数
STAT threads 4 #当前线程数
STAT conn_yields 0 #连接操作主动放弃数目
STAT bytes 81 #已经过期但未获取的对象数目
STAT curr_items 1 #已驱逐但未获取的对象数目
STAT total_items 3 #当前存储占用的字节数
STAT evictions 0 #LRU释放的对象数
stats memcache各种信息
stats settings 查看设置信息,例如线程数
stat slabs 查看slabs相关状况,chunksize长度
stats items 查看items相关情况
stats sizes 查看item个数和大小
stats reset 清理统计数
或者使用memadmin,第三方php写的,连接memcache
wget http://www.junopen.com/memadmin/memadmin-1.0.12.tar.gz
解压缩复制到 站点目录下即可
cp memadmin /application/nginx/html/blog/
访问 站即可
用户名密码admin

============================memcache 会话共享====================
修改php.ini 中session的类型和路径
session.save_handler = memcache
session.save_path = “tcp:/192.168.70.121:11211”
重启PHP
可以找一个bbs 搭建测试一下
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8582 人正在系统学习中 相关资源:实例讲解分布式缓存软件Memcached的Java客户端使用-其它代码类…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!