【图文教程】Memcached

Memcached

  • 1. Memcached简介
  • 2. Mencached安装
  • 3. 查看Memcached运行状态
  • 4. Mencached命令行
  • 5. Memcached数据导出和导入
  • 6. php连接Memcached
  • 7. Memcached中存储sessions

1. Memcached简介

Memcached是国外社区网站LiveJournal团队开发,目的是为了通过缓存数据库查询结果,减少数据库访问次数,从而提高动态web站点性能。

官方站点:http://www.memcached.org/

数据结构简单(k-v key/value),数据存放在内存里
多线程
基于c/s架构,协议简单
基于libevent的事件处理
自主内存存储处理(slab allowcation)
数据过期方式:Lazy Expiration 和 LRU

  • Mencache数据流向

在这里插入图片描述

  • Slab allocation (板配置)
# Slab Allocation的原理# 将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk的集合),每个chunk集合被称为slab。# Memcached的内存分配以Page为单位,Page默认值为1M,可以在启动时通过-I参数来指定。# Slab是由多个Page组成的,Page按照指定大小切割成多个chunk。# Slab:板# Page:页面# chunk:块

在这里插入图片描述

  • Growth factor (增长因子)
# Memcached在启动时通过-f选项可以指定 Growth Factor因子。该值控制chunk大小的差异。默认值为1.25。# 通过memcached-tool命令查看指定Memcached实例的不同slab状态,可以看到各Item所占大小(chunk大小)差距为1.25# 命令:# memcached-tool 127.0.0.1:11211 display
  • Memcached的数据过期方式
# Lazy ExpirationMemcached 内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,Memcached不会在过期监视上耗费CPU时间。# LRUMemcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此,当内存空间不足时(无法从slab class获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想。

2. Mencached安装

  • Memcached安装步骤
# yum list |grep memcached  //查看memcached安装包# yum install -y memcached libmemcached libevent  //安装memcached# systemctl start memcached  //启动memcached- 更改memcached参数启动方案(两种)# /usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024  //更改数字,然后启动memcached服务# vim /etc/sysconfig/memcached  //更改配置文件PORT="11211"       //端口号
USER="memcached"   //用户
MAXCONN="1024"     //最大连接数
CACHESIZE="64"     //大小
OPTIONS=" "        //选项
  • Memcached参数

. /memcached -d -m 10 -u root -l 192. 168. 1. 130 -p 2222 -c 256 -P /tmp/memcached. pi d

参数含义
-d作为守护进程来运行
-m分配给Memcached的内存
-u运行Memcached的用户
-lMemcached监听的IP地址
-pMemcached监听的端口
-c最大的并发连接数 默认为1024
-P保存进程Id到指定的文件,只有在d使用的时候才有意义

3. 查看Memcached运行状态

  • 运行Memcached
# yum install telnet# telnet 127.0.0.1 11211
  • 查看Memcached状态
第一种方法:# memcached-tool 127.0.0.1:11211 stats  //查看memcached状态#127.0.0.1:11211   Field       Valueaccepting_conns           1auth_cmds           0auth_errors           0bytes           0bytes_read         104bytes_written         122cas_badval           0cas_hits           0cas_misses           0cmd_flush           0cmd_get           0cmd_set           0cmd_touch           0conn_yields           0connection_structures          11curr_connections          10curr_items           0  //暂时存在里面有多少个项目decr_hits           0decr_misses           0delete_hits           0delete_misses           0evicted_unfetched           0evictions           0expired_unfetched           0get_hits           0  //命中了多少 用 get_hits ÷ curr_items = 命中率有多高get_misses           0  hash_bytes      524288hash_is_expanding           0hash_power_level          16incr_hits           0incr_misses           0libevent 2.0.21-stablelimit_maxbytes   134217728listen_disabled_num           0pid       11350pointer_size          64reclaimed           0reserved_fds          20rusage_system    0.014572rusage_user    0.012424threads           4time  1575897687total_connections          14total_items           0touch_hits           0touch_misses           0uptime         686version      1.4.15第二种方法:# yum install -y nc  //需要安装nc命令# echo stats |nc 127.0.0.1 11211  //查看memcached状态STAT pid 11350
STAT uptime 1363
STAT time 1575898364
STAT version 1.4.15
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.025597
STAT rusage_system 0.024586
STAT curr_connections 10
STAT total_connections 16
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 116
STAT bytes_written 1152
STAT limit_maxbytes 134217728
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT expired_unfetched 0
STAT evicted_


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部