设为首页 收藏本站
查看: 1271|回复: 0

[经验分享] centos7安装配置memcached

[复制链接]

尚未签到

发表于 2018-12-25 10:22:24 | 显示全部楼层 |阅读模式
  1.memcached的安装
  yum install memcached
  memcached -h
  vim /etc/sysconfig/memcached
  PORT=”11211″
  USER=”memcached”
  MAXCONN=”1024″
  CACHESIZE=”64″
  OPTIONS=”"
  systemctl restart memcached
  systemctl start memcached
  systemctl enable memcached
  systemctl status memcached
  systemctl stop memcached
  memcached-tool 127.0.0.1:11211 stats
  memcached-tool 127.0.0.1:11211
  #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
  2     120B    727s     1     7     yes      0      0   0
  4     192B    7243s    1     3     yes      0      0   0
  5     240B    72693s   1     14     yes      0      0   0
  9     600B     0s     1     0     yes       0      0   0
  10    752B     79s     1     1     yes      0      0   0
  #       slab class编号
  Item_Size  chunk大小
  Max_age   LUR内最旧的记录生存时间
  Pages    分配给slab的页数
  Count    slab内的记录数
  Full?    slab内是否含有空闲chunk
  

  2./etc/php.d/memcache.ini详解
  ; ----- Enable memcache extension module
  extension=memcache.so
  ; ----- Options for the memcache module
  ; see http://www.php.net/manual/en/memcache.ini.php
  ;  Whether to transparently failover to other servers on errors
  ;memcache.allow_failover=1    (连接出错时Memcache扩展是否故障转移到其他服务器上默认为1)
  ;  Data will be transferred in chunks of this size
  ;memcache.chunk_size=32768         (控制数据传输的大小)
  ;  Autocompress large data
  ;memcache.compress_threshold=20000
  ;  The default TCP port number to use when connecting to the memcached server
  ;memcache.default_port=11211       (设置连接Memcache所使用的TCP端口)
  ;  Hash function {crc32, fnv}
  ;memcache.hash_function=crc32
  ;  Hash strategy {standard, consistent}
  ;memcache.hash_strategy=consistent   (哈希策略)
  ;  Defines how many servers to try when setting and getting data.
  ;memcache.max_failover_attempts=20   (限制连接到持久性数据或检索数据的服务器数目)
  ;  The protocol {ascii, binary} : You need a memcached >= 1.3.0 to use the binary protocol
  ;  The binary protocol results in less traffic and is more efficient
  ;memcache.protocol=ascii
  ;  Redundancy : When enabled the client sends requests to N servers in parallel
  ;memcache.redundancy=1
  ;memcache.session_redundancy=2
  ;  Lock Timeout
  ;memcache.lock_timeout = 15
  ; ----- Options to use the memcache session handler
  ; RPM note : save_handler and save_path are defined
  ; for mod_php, in /etc/httpd/conf.d/php.conf
  ; for php-fpm, in /etc/php-fpm.d/*conf
  ;  Use memcache as a session handler
  ;session.save_handler=memcache
  ;  Defines a comma separated of server urls to use for session storage;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
  

  2.php操作memcache的使用测试
  2.1创建KEY值数据
  vi test1.php
  
  2.2替换KEY值数据
  vi test2.php
  
  2.3删除KEY值数据
  vi test3.php
  
  php -f test1.php(执行php -h看帮助)
  命令帮助:
  Memcache::add // 添加一个值,如果已经存在,则返回false
  Memcache::addServer // 添加Memcache地址
  Memcache::close // 关闭一个Memcache的连接
  Memcache::connect // 打开一个到Memcache的连接
  Memcache::decrement // 对保存的某个key中的值进行减法操作
  Memcache::delete // 删除一个Memcache上的key值
  Memcache::flush // 刷新所有Memcache上保存的项目(类似于删除所有的保存的项目)
  Memcache::get // 从Memcache上获取一个key值
  Memcache::getExtendedStats // 获取进程池中所有进程的运行系统统计
  Memcache::getServerStatus // 获取运行服务器的参数
  Memcache::getStats //获取当前Memcache服务器运行的状态
  Memcache::getVersion // 返回运行的Memcache的版本信息
  Memcache::increment // 对保存的某个key中的值进行加法操作
  Memcache::pconnect // 打开一个到Memcache的长连接
  Memcache::replace // 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)
  Memcache::set // 向Memcache添加一个值,如果已经存在,则覆写
  Memcache::setCompressThreshold // 对大于某一大小的数据进行压缩
  Memcache::setServerParams // 在运行时修改服务器的参数
  

  2.查看memcached性能状态
  2.1查看服务器性能信息
  # telnet localhost 11211
  stats(此处输入stats命令
  STAT pid 1277            (进程ID)
  STAT uptime 176145         (服务器运行秒数,秒)
  STAT time 1448592684       (服务器当前unix时间戳)
  STAT version 1.4.15        (服务器版本)
  STAT libevent 2.0.21-stable
  STAT pointer_size 64       (操作系统字大小 32/64位)
  STAT rusage_user 3.869494    (进程累计用户时间,秒)
  STAT rusage_system 4.636292   (进程累计系统时间,秒)
  STAT curr_connections 11     (当前打开连接数)
  STAT total_connections 21    (曾打开的连接总数)
  STAT connection_structures 12  (服务器分配的连接结构数)
  STAT reserved_fds 20
  STAT cmd_get 483          (执行get命令总数)
  STAT cmd_set 144          (执行set命令总数)
  STAT cmd_flush 0          (指向flush_all命令总数)
  STAT cmd_touch 0
  STAT get_hits 369         (get未命中次数)
  STAT get_misses 114        (get未命中次数)
  STAT delete_misses 0       (delete未命中次数)
  STAT delete_hits 0        (delete命中次数)
  STAT incr_misses 0        (incr未命中次数)
  STAT incr_hits 0         (incr命中次数)
  STAT decr_misses 0        (decr未命中次数)
  STAT decr_hits 0         (decr命中次数)
  STAT cas_misses 0         (cas未命中次数)
  STAT cas_hits 0          (cas命中次数)
  STAT cas_badval 0         (使用擦拭次数)
  STAT touch_hits 0
  STAT touch_misses 0
  STAT auth_cmds 0
  STAT auth_errors 0
  STAT bytes_read 82819      (读取字节总数)
  STAT bytes_written 104266    (写入字节总数)
  STAT limit_maxbytes 67108864  (分配的内存数(字节))
  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 4789           (存储item字节数)
  STAT curr_items 20         (item个数)
  STAT total_items 144       (item总数)
  STAT expired_unfetched 15
  STAT evicted_unfetched 0
  STAT evictions 0          (获取空间删除item的总数)
  STAT reclaimed 36
  END
  quit(此处输入quit退出memcached状态查看
  2.2查看每个slab中存储items的详细信息
# telnet localhost 11211
stats items(此处输入stats命令
  STAT items:4:number 3
  STAT items:4:age 2140(当前数据中缓存最久的时间,一般小于evicted_time(不为0)时间)
  STAT items:4:evicted 0(如果evicted不是0,说明slab开始提前剔除数据,需要注意)
  STAT items:4:evicted_nonzero 0
  STAT items:4:evicted_time 0(最后被剔除数据的缓存时间,不是发生LRU就memcached负载过量)
  STAT items:4:outofmemory 0
  STAT items:4:tailrepairs 0
  STAT items:4:reclaimed 6
  STAT items:4:expired_unfetched 1
  STAT items:4:evicted_unfetched 0
  STAT items:5:number 15
  STAT items:5:age 67590
  STAT items:5:evicted 0
  STAT items:5:evicted_nonzero 0
  STAT items:5:evicted_time 0
  STAT items:5:outofmemory 0
  STAT items:5:tailrepairs 0
  STAT items:5:reclaimed 22
  STAT items:5:expired_unfetched 10
  STAT items:5:evicted_unfetched 0
  STAT items:10:number 1
  STAT items:10:age 283
  STAT items:10:evicted 0
  STAT items:10:evicted_nonzero 0
  STAT items:10:evicted_time 0
  STAT items:10:outofmemory 0
  STAT items:10:tailrepairs 0
  STAT items:10:reclaimed 13
  STAT items:10:expired_unfetched 7
  STAT items:10:evicted_unfetched 0
  END
  2.3查看slab内存分配信息
# telnet localhost 11211
stats slabs(此处输入stats命令
  STAT 4:chunk_size 192    (当前slab每个chunk的大小,固定值)
  STAT 4:chunks_per_page 5461(每个page能够存放的chunk数,固定值)
  STAT 4:total_pages 1     (分配给当前slab的page总数,单位M。slab剔除严重,该值会太少)
  STAT 4:total_chunks 5461  (当前slab最多能够存放的chunk数,=chunks_per_page*total_pages)
  STAT 4:used_chunks 3     (已经被占用的chunks总数)
  STAT 4:free_chunks 5458   (过期数据空出的chunk里还没有被使用的chunk数)
  STAT 4:free_chunks_end 0  (新分配但还没有被使用的chunk数)
  STAT 4:mem_requested 555
  STAT 4:get_hits 136
  STAT 4:cmd_set 9
  STAT 4:delete_hits 0
  STAT 4:incr_hits 0
  STAT 4:decr_hits 0
  STAT 4:cas_hits 0
  STAT 4:cas_badval 0
  STAT 4:touch_hits 0
  STAT 5:chunk_size 240
  STAT 5:chunks_per_page 4369
  STAT 5:total_pages 1
  STAT 5:total_chunks 4369
  STAT 5:used_chunks 14
  STAT 5:free_chunks 4355
  STAT 5:free_chunks_end 0
  STAT 5:mem_requested 3158
  STAT 5:get_hits 158
  STAT 5:cmd_set 43
  STAT 5:delete_hits 0
  STAT 5:incr_hits 0
  STAT 5:decr_hits 0
  STAT 5:cas_hits 0
  STAT 5:cas_badval 0
  STAT 5:touch_hits 0
  STAT 10:chunk_size 752
  STAT 10:chunks_per_page 1394
  STAT 10:total_pages 1
  STAT 10:total_chunks 1394
  STAT 10:used_chunks 1
  STAT 10:free_chunks 1393
  STAT 10:free_chunks_end 0
  STAT 10:mem_requested 646
  STAT 10:get_hits 104
  STAT 10:cmd_set 105
  STAT 10:delete_hits 0
  STAT 10:incr_hits 0
  STAT 10:decr_hits 0
  STAT 10:cas_hits 0
  STAT 10:cas_badval 0
  STAT 10:touch_hits 0
  STAT active_slabs 3
  STAT total_malloced 3145360
  END
  

  报错1:执行memcached -vv报错can't run as root without the -u switch
  解决1:memcached -vv -u root
  

  3.增加memcache缓存日志
  yum -y install php-pecl-memcache
  如果是PHP56版本的应该运行
  yum -y install php56w-pecl-memcache
  防火墙放开11211
  firewall-cmd --permanent --zone=public --add-port=11211/tcp
  检查端口是否开放

  echo stats | nc memcache_host_name_or_ip 11211
  增加日志
  /bin/memcached -d -m 512 -l 127.0.0.1 -p 10000 -u root -vv >> /tmp/memcached.log 2>&1
  tail -f /tmp/memcached.log
  

  4.memcache缓存mysql的测试页面
  vi mysql-memcache.php
  
  

  5.memcached禁止外网访问
  lnmp默认安装的memcached是可以外网访问的,对于我这个小站来说外网不会用到,所以只允许内网用。修改文件vi /etc/init.d/memcached
  PORT=11211
  USER=root
  MAXCONN=1024
  CACHESIZE=32
  OPTIONS=""
  IP=127.0.0.1
  RETVAL=0
  prog="memcached"
  start () {
  echo -n $"Starting $prog: "
  memcached -d -l $IP -p $PORT -u $USER -m $CACHESIZE -c $MAXCONN -P /var/run/memcached.pid $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
  }
  如果有安装iptables的话可以用iptables来禁止外网访问
  

  6.未完成
  http://www.linuxidc.com/Linux/2015-05/117170.htm
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655585-1-1.html 上篇帖子: Memcached java简单实例 下篇帖子: symfony2使用Memcached存储Session
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表