memcached缓存+lamp环境部署

一、Memcached概述:

Memcached是国外社区网站 LiveJournal 的开发团队开发的一套高性能的分布式内存对象缓存服务器。它将所有的数据统统保存在内存中,在内存中会维护一个巨大的hash表,支持任意存储类型的数据,很多网站通过Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问的网站,减少查询效率,提高查询速度;

二、测试环境

系统IP主机名所需安装包
Centos-7.210.0.0.72memcache-servermemcached-1.5.10.tar.gz、libevent
Centos-7.210.0.0.73memcache-clientlibmemcached-1.0.18.tar.gz memcached-2.2.0.tgz httpd mariadb mysql php php-devel php-mysql

三、部署步骤

1.服务器端部署
步骤一:服务端下载libevent与memcache.

[root@memcache-server ~]# yum -y gcc gcc-c++
[root@memcache-server ~]# wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
[root@memcache-server ~]# wget http://memcached.org/files/memcached-1.5.14.tar.gz
[root@memcache-server ~]# ll *.gz
-rw-r–r--. 1 root root 1026485 May 25 2017 libevent-2.1.8-stable.tar.gz
-rw-r–r--. 1 root root 485076 Apr 27 04:39 memcached-1.5.14.tar.gz

步骤二:编译安装libevent

[root@memcache-server ~]# tar zxf libevent-2.1.8-stable.tar.gz
[root@memcache-server ~]# tar zxf memcached-1.5.14.tar.gz
[root@memcache-server ~]# cd libevent-2.1.8-stable
[root@memcache-server libevent-2.1.8-stable]# ./configure --prefix=/usr/local/libevent
[root@memcache-server libevent-2.1.8-stable]# make && make install

步骤三:编译安装memcache

[root@memcache-server libevent-2.1.8-stable]# cd …
[root@memcache-server ~]# cd memcached-1.5.14
[root@memcache-server memcached-1.5.14]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
[root@memcache-server memcached-1.5.14]# make && make install

步骤四:启动memcache

[root@memcache-server memcached-1.5.14]# ln -s /usr/local/memcached/bin/* /usr/local/bin/
[root@memcache-server memcached-1.5.14]# memcached -d -m 128m -u root
[root@memcache-server memcached-1.5.14]# netstat -lntup|grep 11211
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 12436/memcached
tcp6 0 0 :::11211 ::? LISTEN 12436/memcached

2.客户端部署
步骤一:安装lamp环境

[root@memcache-client ~]# yum -y gcc gcc-c++ httpd mariadb mysql php php-devel php-mysql

步骤二:下载并编译memcached-2.2.0 .tgz

[root@memcache-client ~]# wget http://pecl.php.net/get/ memcached-2.2.0 .tgz
[root@memcache-client ~]# ll memcached-2.2.0 .tgz
-rw-r–r--. 1 root root 82673 Dec 24 16:44 memcached-2.2.0 .tgz
[root@memcache-client ~]# tar zxf memcached-2.2.0 .tgz
[root@memcache-client ~]# cd memcached-2.2.0
[root@memcache-client memcached-2.2.0 ]# phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@memcache-client memcached-2.2.0 ]# find / -type f -name “php-config”
/usr/bin/php-config
[root@memcache-client memcached-2.2.0 ]# ./configure --with-php-config=/usr/bin/php-config

报错:checking for zlib location… configure: error: memcached support requires ZLIB. Use --with-zlib-dir=

to specify the prefix where ZLIB headers and library are located
解决:yum install zlib zlib-devel -y
[root@memcache-client memcached-2.2.0 ]# yum install zlib zlib-devel

[root@memcache-client memcached-2.2.0 ]# ./configure --with-php-config=/usr/bin/php-config
报错:checking for libmemcached location… configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=

to specify the prefix where libmemcached headers and library are located
解决:memcache有两个版本其中一个版本客户端基于libmemcached,所以必须要安装libmemcached**
[root@memcache-client ~]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
[root@memcache-client ~]# cd libmemcached-1.0.18
[root@memcache-client libmemcached-1.0.18]# ./configure --prefix=/usr/local/libmemcached

[root@memcache-client libmemcached-1.0.18]# make && make install
报错:
make -j2 all-am
make[1]: Entering directory /root/libmemcached-1.0.18' CXXLD libhashkit/libhashkit.la /usr/bin/ld: libhashkit/.libs/libhashkit_libhashkit_la-crc32.o: relocation R_X86_64_32S against.rodata’ can not be used when making a shared object; recompile with -fPIC
libhashkit/.libs/libhashkit_libhashkit_la-crc32.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [libhashkit/libhashkit.la] Error 1
make[1]: Leaving directory `/root/libmemcached-1.0.18’
make:\ *** [all] Error 2
解决:系统是64位,但是安装的时候认为是32位的,需要执行:make clean all LDFLAGS="-L/usr/lib64 -L/lib64"**
[root@memcache-client libmemcached-1.0.18]# make clean all LDFLAGS="-L/usr/lib64 -L/lib64"
[root@memcache-client libmemcached-1.0.18]# make && make install

[root@memcache-client memcached-2.2.0 ]# ./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/
[root@memcache-client memcached-2.2.0 ]#make
[root@memcache-client memcached-2.2.0 ]#make test
[root@memcache-client memcached-2.2.0]# make install
Installing shared extensions: /usr/lib64/php/modules/
[root@memcache-client memcached-2.2.0]# ll /usr/lib64/php/modules/memcached.so
-rwxr-xr-x. 1 root root 382135 May 4 18:09 /usr/lib64/php/modules/memcached.so

步骤三:配置php支持memcache

[root@memcache-client memcached-2.2.0]# cat >>/etc/php.ini <<-eof
> extension_dir = /usr/lib64/php/modules/
> extension = memcached.so
> eof

步骤四:启动httpd

[root@memcache-client memcached-2.2.0]# systemctl start httpd
[root@memcache-client memcached-2.2.0]# cat </var/www/html/index.php
> <?php
> phpinfo();
> ?>
> eof

四、测试

步骤一:浏览器访问

在这里插入图片描述

步骤二:测试api功能

[root@memcache-client memcached-2.2.0]# cat /var/www/html/test.php
<?php
$memcache = new Memcached();
$memcache->addServer(‘10.0.0.72’,11211);
$memcache->set(‘key’,‘Memcache test sussessful!’,0,60);
$result = m e m c a c h e − &gt; g e t ( ′ k e y ′ ) ; u n s e t ( memcache-&gt;get(&#x27;key&#x27;); unset( memcache>get(key);unset(memcache);
echo $result;
?>
在这里插入图片描述

步骤三:telnet查看

[root@memcache-client ]# yum -y install telnet
[root@memcache-client libmemcached-1.0.18]# telnet 10.0.0.72 11211
Trying 10.0.0.72…
Connected to 10.0.0.72.
Escape character is ‘^]’.
get key
VALUE key 3932160 25
Memcache test sussessful!
END

五、Memcached操作与管理;

[root@memser ~]# telnet 10.0.0.72 11211
Trying 192.168.200.203…
Connected to 192.168.200.203.
Escape character is ‘^]’.
stats ##查看状态
STAT pid 12863 //memcached启动的进程ID
STAT uptime 4008 //到目前为止启动了多少秒
STAT time 1464713917 //服务器当前的unix时间戳
STAT version 1.2.6 //memcached的版本信息
STAT pointer_size 64 //当前操作系统的指针大小(64位系统一般是64bit)
STAT rusage_user 0.278957 //进程的累计用户时间
STAT rusage_system 0.371943 //进程的累计系统时间
STAT curr_items 1 //服务器当前存储的items数量
STAT total_items 2 //从服务器启动以后存储的items总数量
STAT bytes 79 //当前服务器存储items占用的字节数
STAT curr_connections 2 //当前的并发连接数
STAT total_connections 4 //从服务器启动以后曾经打开过的连接数
STAT connection_structures 3 //服务器分配的连接构造数
STAT cmd_get 2 //执行get命令的次数
STAT cmd_set 2 //执行set命令的次数
STAT get_hits 2 //get的命中次数
STAT get_misses 0 //get的非命中数
STAT evictions 0 //为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
STAT bytes_read 98 //总读取字节数(请求字节数)
STAT bytes_written 97 //总发送字节数(结果字节数)
STAT limit_maxbytes 33554432 //分配给memcache的内存大小(字节)
STAT threads 1 //当前进程数
END
set test_key 0 0 10 ##设置test_key指令格式:<命令> <键> <标记> <有效期> <数据长度>”
test_value ##输入test_key所对应的值
STORED
get test_key ##查看test_key键的内容
VALUE test_key 0 10
test_value
END
replace test_key 0 0 11 ##修改test_key键的数据长度
test_value2 ##存储新的值
STORED
get test_key ##查看验证
VALUE test_key 0 11
test_value2
END
append test_key 0 0 5 ##在test_key后边追加5个字符
,test ##添加的值
STORED
get test_key ##查看验证
VALUE test_key 0 16
test_value2,test
END
prepend test_key 0 0 6 ##在test_key前面追加6个字符
test1, ##添加的值
STORED
get test_key ##查看验证
VALUE test_key 0 22
test1,test_value2,test
END
delete test_key ##删除键
DELETED
set myconter 0 0 1 ##定义一个myconter的键
1 ##设置上述键的值
STORED
incr myconter 1 ##值增加1
2
get myconter ##查看验证
VALUE myconter 0 1
2
END
decr myconter 1 ##值减少1
1
get myconter
VALUE myconter 0 1
1
END
flush_all ##删除所有的键值对
OK
quit ##退出
Connection closed by foreign host.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值