21、3 memcached安装及相关操作

安装memcached
yum install -y memcached libmemcached libevent

memcached基于libevent,可查看是否已安装libevent
rpm -qa libevent

165fe11a41c182b92033af29e627031be6c.jpg

启动memcached
systemctl start memcached

b95e791551863414ddb66acb19b67b02460.jpg

修改启动时的配置
使用命令行的形式启动memcached,并指定相应参数(/usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024)
或者修改/etc/sysconfig/memcached
vim /etc/sysconfig/memcached

275e71f6a0c5f4b4512dae84490df92bbcd.jpg

查看memcached状态
memcached-tool 127.0.0.1:11211 stats 使用该命令查看memcached运行状态
主要关注get_hits、curr_items、cmd_get,get_hits/cmd_get=命中率(生成缓存信息中被点击使用的占比)

b315a6b4eab6d484cbdb8bb838cd6dc7a73.jpg

或者echo stats |nc 127.0.0.1 11211  需要安装nc工具  yum install -y nc
echo stats |nc 127.0.0.1 11211 查看运行状态
还可安装libmemcached查看
yum install -y libmemcached
memstat --servers=127.0.0.1:11211 


memcached命令行
telnet 127.0.0.1 11211 使用telnet登录
set key2 0 30 2
key2为key的名称,0为flags是一个16位的无符号的整数(以十进制的方式表示),客户端可以将此标志用做特殊用途,此标志对服务器来说是不透明的。30为过期时间(0为不过期),后面的2为存储的字节数。
set表示按照相应的<key>存储该数据,没有的时候增加,有的时候覆盖;
add表示按照相应的<key>添加该数据,但是如果该<key>已经存在则会操作失败;
replace表示按照相应的<key>替换数据,但是如果该<key>不存在则操作失败;
delete表示删除key中的值。

6f47b1c6f7890fdff397e6ccc30b74222db.jpg

memcached数据导出和导入
输入数据
set name 1 0 4
1234
STORED
set age 1 0 2
20
STORED
set k1 1 0 5
abcde
STORED
quit

导出数据
memcached-tool 127.0.0.1:11211 dump > data.txt

149e596a882caa8792799209b911f62406d.jpg

导入命令
nc 127.0.0.1 11211 < data.txt (若nc命令不存在,需要使用yum进行安装)
systemctl restart memcached 先重启memcached,然后再导入

076dc302e18d51dd73175bc2c65b44fef03.jpg

注意:导出的数据是带有一个时间戳的,这个时间戳就是该条数据过期的时间点,如果当前时间已经超过该时间戳,那么是导入不进去的。
要修改时间戳
date -d "+1 hour" +%s  当前时间1小时后的时间戳

8d9231f83f70eccf7f75c5790c7c4380adc.jpg

vim data.txt

301b47ac150ed5191d6ccd71c2cc64bae0b.jpg

只修改k1和name
再导入
nc 127.0.0.1 11211 < data.txt

68c13577a218401599b3ce1f1beb869432f.jpg

修改时间戳后的数据导入才生效。


php连接memcached
/usr/local/php-fpm/sbin/php-fpm -m  //查看php中的扩展模块
cd /usr/local/src/
wget http://www.apelearn.com/bbs/data/attachment/forum/memcache-2.2.3.tgz
tar zxvf memcache-2.2.3.tgz
cd memcache-2.2.3

17f3bf27b622b0ae0b1ce01edd745c27d10.jpg

/usr/local/php-fpm/bin/phpize
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make && make install
安装完后会有类似这样的提示:

58ed0e58b906a6dc62ddaf6b4263b5fbe66.jpg

vim /usr/local/php-fpm/etc/php.ini
添加extension=memcache.so

1d7f891a8a59a9852b7ab40a00c058438dd.jpg
检查/usr/local/php-fpm/sbin/php-fpm -m

62a7bd250adebd3271260a90fd58bae2336.jpg

下载测试脚本
curl www.apelearn.com/study_v2/.memcache.txt > 1.php 2>/dev/null
(1.php内容也可以参考https://coding.net/u/aminglinux/p/yuanke_centos7/git/blob/master/21NOSQL/1.php)
执行脚本
/usr/local/php-fpm/bin/php 1.php
或者将1.php放到某个虚拟主机根目录下面,在浏览器访问,即可看到效果
最终可以看到数据如下:

4b2ac0d0c2ad5dafc69910744f0d2260950.jpg

memcached中存储session
本实例是在lamp/lnmp环境下实现
vim /usr/local/php-fpm/etc/php.ini
将session.save_handler = files修改为;session.save_handler = files 注释掉
并添加
session.save_handler = memcache 
session.save_path = "tcp://192.168.0.9:11211"  

9a29661a8936151d77795fa00ca70ba7d15.jpg

若操作不成功,可在httpd.conf中对应的虚拟主机中添加
php_value session.save_handler "memcache" 
php_value session.save_path "tcp://192.168.0.9:11211"  
或者php-fpm.conf(/usr/local/php-fpm/etc/php-fpm.d/aming.conf)对应的pool中添加
php_value[session.save_handler] = memcache
php_value[session.save_path] = " tcp://192.168.0.9:11211 "

下载存储session的php脚本
wget http://study.lishiming.net/.mem_se.txt
(其中session.php内容可以参考https://coding.net/u/aminglinux/p/yuanke_centos7/git/blob/master/21NOSQL/session.php)
cd /data/wwwroot/default
mv /root/.mem_se.txt 1.php
curl localhost/session.php

telnet 127.0.0.1 11211
get i44nunao0g3o7vf2su0hnc5440 

b848fbcbb1f1218844084d5341310dd11dc.jpg

 

转载于:https://my.oschina.net/u/3867322/blog/2873419

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值