memcache的安装和操作使用

【背景】

memcached是一个开源的缓存服务,内存式的,数据以key/value值存在预先分配好的内存中。重启就丢失的。在内存中,所以存取速度快。 采用libevent事件模型。

memcached 是服务程序

memcache 是客户端程序 如作为php的模块

【应用场景】

1 mysql的缓存

2 session的缓存

【安装】

安装简单,易用

【安装步骤】

官网下载

http://memcached.org/  官网

http://www.memcached.org/files/memcached-1.4.29.tar.gz

wget http://www.memcached.org/files/memcached-1.4.29.tar.gz

tar -xvf  memcached-1.4.29.tar.gz 
cd memcached-1.4.29
./configure --prefix=/usr/local/memcached
make
make install

可执行文件/usr/local/memcached/bin/memcached (可将其将加入环境变量)

如果不指定安装目录,默认安装在/usr/local 下面(则默认的可执行文件在/usr/local/bin/memcached)

【启动服务与停止服务】

查看帮助信息

/usr/local/memcached/bin/memcached -h

查看版本信息

/usr/local/memcached/bin/memcached -V

常用的启动参数:

-p <num>      TCP port number to listen on (default: 11211)

-u <username> assume identity of <username> (only when run as root)

-l <addr>     interface to listen on (default: INADDR_ANY, all addresses)

-d            run as a daemon

-m <num>      max memory to use for items in megabytes (default: 64 MB)

-P <file>     save PID in <file>, only used with -d option

-t <num>      number of threads to use (default: 4)

-c <num>      max simultaneous connections (default: 1024)

-M            return error on memory exhausted (rather than removing items)

启动2个实例:

/usr/local/memcached/bin/memcached  -p 11211 -u root -c 1024 -m 16m -d -P /var/run/memcached_11211.pid
/usr/local/memcached/bin/memcached  -p 11212 -u root -c 1024 -m 16m -d -P /var/run/memcached_11212.pid

验证:

ps -ef |grep memcached
netstat -tulnp |grep mem

停止memcached

1 可以强制全部杀死

pkill memcached

2 强制杀死一个

kill -9 pid

3 正规路径停止memcached

kill `cat /var/run/memcached_11211.pid`

【linux命令下简单操作memcached】

注意: 一般不常用,只为调试和学习用。

方式1 telnet

方式2 printf或结合nc命令  --- 推荐使用

设定一个key

printf "set key1 0 0 5\r\n12345\r\n"|nc 127.0.0.1 11211

获取一个key

printf "get key1\r\n"|nc 127.0.0.1 11211

echo stats | nc localhost  11211

echo stats items | nc 127.0.0.1 11211

实时查看状态

watch -n1 -d  "echo stats | nc localhost  11211"

【lamp 与lnmp中安装memcache模块的环境】

确保环境已经安装好 lnmp

查看php的配置信息

/usr/local/php/bin/php -i |grep configure

可以确定是lnmp还是php-fpm环境

或者通过

ls /usr/local/php 目录下是否有sbin目录,有则是lnmp环境,使用了sbin/php-fpm方式启动php

查看此时是否已经安装了memcache模块

[[email protected] html]# cat phpinfo.php

<?php

phpinfo();

?>

或者

/usr/local/php/bin/php -m

且此时不能看到memcache模块

【为lnmp的php安装memcache模块】

下载php的memcache模块

http://pecl.php.net/package/memcache

wget http://pecl.php.net/get/memcache-2.2.7.tgz

tar zxvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config 
make 
make install

结果:

[[email protected] memcache-2.2.7]# make install

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

【memcache在php中生效-修改php.ini配置文件】

extension_dir = "./"

修改为

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"

并添加一行

extension = memcache.so

重启php-fpm

killall php-fpm

启动

/usr/local/php/sbin/php-fpm

或者知指定配置文件进行启动。

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini  -y /usr/local/php/etc/php-fpm.conf

-c <path>|<file> Look for php.ini file in this directory

-y, --fpm-config <file>

推荐使用(安全重启的方法)

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
默认php-fpm.conf是没有的需要自己创建,里面就是配置是管理php-fpm进程的。需要自己创建(且pid默认是none的,需要打开pid那行的配置文件,启用pid文件)

结果:

#/usr/local/php/bin/php -m |grep mem
memcache

且phpinfo页面可以看到memcache模块的详细信息

【一段小程序php连接memcache】

连接数据库只需要指定IP:port就可以了。

[[email protected] html]# cat  test_conn_memcache.php

<?php  
//连接Memcache  
$mem = new Memcache;  
$mem->addServer("192.168.100.10", 11211);  
$mem->addServer("192.168.100.10", 11211);  
//保存数据  
$mem->set(‘key1‘, ‘This is first value‘, 0, 60);  
$val = $mem->get(‘key1‘);  
echo "Get key1 value: " . $val ."<br>";  
//保存数组数据  
$arr = array(‘aaa‘, ‘bbb‘, ‘ccc‘, ‘ddd‘);  
$mem->set(‘key2‘, $arr, 0, 60);  
$val2 = $mem->get(‘key2‘);  
echo "Get key2 value: ";  
print_r($val2);  
echo "<br>";  
//删除数据  
$mem->delete(‘key1‘);  
$val = $mem->get(‘key1‘);  
echo "After delete key1 ,Get key1 value: " . $val . "<br>";  
//关闭连接  
$mem->close();  
?>

或如下简单的程序

<?php
$memcache = new Memcache;             //创建一个memcache对象
$memcache->connect(‘localhost‘, 11211) or die ("Could not connect"); //连接Memcached服务器$memcache->
set(‘key‘, ‘test‘);        //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get(‘key‘);  //从内存中取出key的值
echo $get_value;?>

结果:

注意: php-fpm的日志路径/usr/local/php/var/log/php-fpm.log

【监控memcached的使用状态】

1 结合zabbix和shell

内存大小

命中率

2 使用开源的图形软件memadmin

http://www.junopen.com/memadmin

安装(lnmp 或者 lamp环境可运行)

wget  http://www.junopen.com/memadmin/memadmin-1.0.12.tar.gz

tar xvf memadmin-1.0.12.tar.gz -C /usr/local/nginx/html/

(可能要稍稍配置一下nginx.conf文件内容)

连接

http://192.168.100.13/memadmin/index.php?action=set.con

大致所的stats信息:

参数值描述

pid2773memcache服务器进程ID

uptime13263服务器已运行秒数

time1470577520服务器当前Unix时间戳

version1.4.13memcache版本

libevent1.4.13-stablelibevent版本

pointer_size64操作系统指针大小

rusage_user0.321951进程累计用户时间

rusage_system0.446932进程累计系统时间

curr_connections10当前连接数量

total_connections58Memcached运行以来连接总数

connection_structures12Memcached分配的连接结构数量

reserved_fds20内部使用的FD数

cmd_get   44get命令请求次数

cmd_set     26set命令请求次数

cmd_flush0flush命令请求次数

cmd_touch0touch命令请求次数

get_hits25get命令命中次数

get_misses19get命令未命中次数

delete_misses0delete命令未命中次数

delete_hits12delete命令命中次数

incr_misses0incr命令未命中次数

incr_hits0incr命令命中次数

decr_misses0decr命令未命中次数

decr_hits0decr命令命中次数

cas_misses0cas命令未命中次数

cas_hits0cas命令命中次数

cas_badval0使用擦拭次数

touch_hits0touch命令命中次数

touch_misses0touch命令未命中次数

auth_cmds0认证命令处理的次数

auth_errors0认证失败数目

bytes_read3121读取总字节数

bytes_written23943发送总字节数

limit_maxbytes16777216分配的内存总大小(字节)

accepting_conns1接受新的连接

listen_disabled_num0失效的监听数

threads     4当前线程数

conn_yields0连接操作主动放弃数目

hash_power_level16hash表等级

hash_bytes524288当前hash表大小

hash_is_expanding0hash表正在扩展

expired_unfetched0已过期但未获取的对象数目

evicted_unfetched0已驱逐但未获取的对象数目

bytes132当前存储占用的字节数

curr_items1当前存储的数据总数

total_items24启动以来存储的数据总数

evictions0LRU释放的对象数目

reclaimed1已过期的数据条目来存储新数据的数目

【memcached的集群】

因为mencache的各各节点是独立的,数据不共享,所以需要通过程序调度算法进行memcached分布式的使用.

如:memcache代理程序进行url hash算法 决定到某个node

时间: 2024-10-14 18:13:49

memcache的安装和操作使用的相关文章

企业LAMP+gd + fretds + fastcgi + memcache环境安装配置

于2017.04.21 从新浪博客搬迁过来 ---------------------------------------------------------------- 现在很多企业线上web环境都在使用lamp+fretds这样的环境的,如果公司正处于发展阶段,那么有时候需要扩大线上环境,或者替换老的机器,在这个时候就需要搭建线上的web环境,如果每次都手动安装环境费时费力:在这里我基于我们公司线上web环境整理了这篇文档. 安装前的准备工作 关闭防火墙和selinux iptables

memcache的安装及管理

一.Memcache概述 Memcache(内存,缓存):是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个巨大的hash表.(key=value)(是用C语言开发的,并且需要libevent库的支持)                                                 Hash表 key value str “abc” arr array(‘a’,'b') obj object值 memcache就是一个软件(服务软件)C/S软件 Mysql       

Memcache的安装和使用【转】

转自:https://www.cnblogs.com/caoxiaojian/p/5715573.html Memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中.由于数据仅存在于内存中,因此重启memcached.重启操作系统会导致全部数据消失.另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存. lib

VMware虚拟机安装+Linux操作系统安装视频教程_Linux实验环境安装

VMware虚拟机安装+Linux操作系统安装视频教程_风哥版Linux实验环境安装 1.VMware虚拟机安装(VMWare Server+VMWare WorkStation) 2.VMware虚拟机配置 3.VMware虚拟机克隆 4.Linux操作系统安装配置 5.Linux操作系统虚拟机的多机克隆 视频学习地址: http://edu.51cto.com/course/course_id-3733.html

Hadoop初学指南(10)--ZooKeeper的集群安装和操作

本文简单介绍了ZooKeeper的基本知识. (1)概述 ①什么是ZooKeeper? Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务 它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等 ②Zookeeper的角色 ③为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等) 目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制 协调程序的

安装MACOS操作步骤详解

安装MACOS操作步骤详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于安装MAC的操作系统其实大家都知道可以让客服帮忙提供软件上的支持,而且苹果客服都很有礼貌呢,而且非常的有耐心.特别感谢她们的帮助,让我对MAC的操作系统的好感度有了大大的提升.起初,我刚刚拿到我的本的时候是去年,因为我压根并不看好笔记本,我到现在也非常喜欢台式机,因为体验度是相当棒的,但是由于工作的原因,可能是要去出差的时候带着个台式机到处跑也不太合适,于是就决定买一个低配的笔记本.刚刚拿到笔记本第

centos6.5 Memcache的安装

Memcache的安装 1.分别下载memcached和libevent Wget http://memcached.org/files/memcached-1.4.25.tar.gz wget https://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz 2.先安装libevent:# tar zxvf libevent-2.0.21-stable.tar.gz # cd libevent-

Linux下memcache的安装

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.目前用memcache解决互联网上的大用户读取是非常流行的一种用法,在互联网企业中有着广泛的应用.?关于memcache的详细介绍,有兴趣的朋友请参考这篇文章:http://blog.csdn.net/xifeijian/article/details/219949411.下载memcache墙裂推荐官方下载(http://memcached.org/),目前为止,最新的下载版本是1.4.17,如图

windows下memcache的安装总结

一.memcache软件的安装: 1.下载memcache的windows版本,把memcached.exe放在F:盘符,(memcached.exe文件位置不可变动). 2.进入cmd命令终端,进入到F:盘符. 3.memcached.exe -d install 命令进行memcache的安装. 4.memcached.exe -d start 命令进行memcache的开机自动启动. 5.软件安装完成. 二.PHP扩展的配置: 1.下载 php_memcache.dll 扩展文件:http