高性能内存对象缓存Memcached安装及数据库操作与管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能内存对象缓存Memcached安装及数据库操作与管理相关的知识,希望对你有一定的参考价值。
认识Memcached
Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据。很多网站通过使用Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站。Memcached是典型的C/S架构,因此需要安装Memcached服务端与MemcachedAPI客户端。Memcached服务端是用C语言编写的,而Memcached API客户端可以用任何语言来编写,如php、Python、 Perl等,并通过Memcached协议与Memcached服务端进行通信。
当Web客户端发送请求到Web服务器的应用程序时,应用程序会通过调用Memcached API客户端程序库接口去连接Memcached服务器,进而查询数据。如果此时Web客户端所请求的数据已经在Memcached服务端中缓存,则Memcached服务端会将数据返回给Web客户端;如果数据不存在,则会将Web客户端请求发送至mysql数据库,由数据库将请求的数据返回给Memcached以及Web客户端,与此同时Memcached服务器也会将数据进行保存,以方便用户下次请求使用。
Memcached缓存机制
缓存是常驻在内存的数据,能够快速进行读取。而Memcached就是这样一款非常出色的缓存软件,当程序写入缓存数据请求时,Memcached的API接口将Key输入路由算法模块路由到集群中一台服务器,之后由API接口与服务器进行通信,完成一次分布式缓存写入。
安装Memcached案例
本案例使用两台CentOS 7系统和一台Windows 7完成,两台CentOS 7中一台是Memcached服务端,另一条是基于LAMP架构进行Memcached扩展的Memcached API客户端
Memcached服务器IP: 192.168.10.172
主要软件包:
libevent-2.1.8-stable.tar.gz
memcached-1.5.6.tar.gz
Memcached API客户端IP:192.168.10.154
主要软件包:
httpd-2.4.29.tar.gz
mysql-5.6.26.tar.gz
php-5.6.11.tar.bz2
libevent-2.1.8-stable.tar.gz
memcached-1.5.6.tar.gz
测试主机IP:192.168.10.145
安装Memcached服务器
1、解压相关软件包
tar xzvf memcached-1.5.6.tar.gz -C /opt/
tar xzvf libevent-2.1.8-stable.tar.gz -C /opt/
2、Memcached服务器端操作
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent //指明安装路径
make && make install
cd /opt/memcached-1.5.6
./configure --prefix=/usr/local/memcached //指明安装路径
--with-libevent=/usr/local/libevent/ //指明libevent安装路径
make && make install
ln -s /usr/local/memcached/bin/* /usr/local/bin/
memcached -d -m 32m -p 11211 -u root //开启服务,-d守护进程 -m缓存大小32M -p端口11211
netstat -anpt | grep memc //查看端口,确认开启
systemctl stop firewalld.service
setenforce 0 //关闭防火墙和安全功能
Memcached数据操作
#登录
yum install telnet -y //安装telnet进行连接登录
telnet 127.0.0.1 11211 //本机所以是127.0.0.1
#输入数据
add username 0 0 7 //不进行压缩和序列化标识 数据过期时间为永不过期 标识号是7就需要输入7位数。
example //输入数据
#获取数据
get username //获取数据
VALUE username 0 7
example
gets username
VALUE username 0 7 1 //最后一位是更新因子会自增1
example
#更新数据
set username 0 0 10 //更新信息,若键名不存在,则自行添加
everything
replace username 0 0 8 //更新信息,若键名不存在,则报错
12345678
#检查更新
gets username
VALUE username 0 8 4
12345678
cas username 0 0 7 4 //检查更新,更新因子相等则更新否则返回EXISTS
lodging
STORED
#追加数据
append username 0 0 7 //键值后追加数据
example
STORED
prepend username 0 0 2 //键值前追加数据
un
STORED
#清楚数据
delete username
flush_all //清除所有缓存数据
OK
#显示状态信息
stats //显示状态信息
#退出
quit //退出
3、客户端搭建LAMP架构
1、安装Apache
下面两个apr插件是httpd2.4以后的版本所需
tar xzvf apr-1.6.2.tar.gz -C /opt
tar xzvf apr-util-1.6.0.tar.gz -C /opt
tar xzvf httpd-2.4.29.tar.gz -C /opt
cd /opt
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
安装环境包
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl
配置并编译安装
cd /opt/httpd-2.4.29
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
make && make install
将启动脚本复制到/etc/init.d/目录下方便service管理,修改脚本
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
# chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
chkconfig --add httpd //将httpd加入到SERVICE管理器
修改主配置文件,指定域名与监听端口
vi /usr/local/httpd/conf/httpd.conf
ServerName www.yun.com:80
Listen 192.168.175.130:80
为方便管理创建软链接,关闭防火墙并启动服务
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
systemctl stop firewalld.service
setenforce 0 //关闭防火墙及安全功能
httpd -t
apachectl -t //检查是否有误
systemctl start httpd.service //开启服务
netstat -anpt | grep 80 //检查端口
2、安装MYSQL
安装相关环境包
yum install -y ncurses-devel autoconf cmake
解压软件包,配置,编译安装
tar xzvf mysql-5.6.26.tar.gz -C /opt
cd /opt/mysql-5.6.26
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DSYSCONFIDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
make && make install
将启动脚本复制到/etc/init.d/目录下方便service管理
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld //给启动脚本加权限
chkconfig --add /etc/init.d/mysqld //添加到service管理器中
chkconfig mysqld --level 35 on //35级别开机自启动
设置环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile //环境变量
source /etc/profile //刷新环境变量
echo $PATH //查看
创建数据库管理用户,初始化数据库
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
cd /opt/mysql-5.6.26
/usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql //初始化数据库
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock //方便管理创建软链接
修改主配置文件,并开启服务
vi /etc/init.d/mysqld
basedir=/usr/local/mysql //指明安装目录
datadir=/home/mysql //指明数据存放目录
systemctl start mysqld.service //开启服务
netstat -anpt | grep 3306 //检查端口是否开启
mysqladmin -u root -p password "abc123" //给root账号设置密码
3、安装PHP
安装GD库及相关环境包
yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel
解压软件包,配置,并编译安装
tar xjvf php-5.6.11.tar.bz2 -C /opt
cd /opt/php-5.6.11
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring
make && make install
方便管理创建软链接
cp php.ini-development /usr/local/php5/php.ini
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
编辑Apache主配置文件,使其支持PHP
vim /etc/httpd.conf
#插入下两行内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#添加PHP类型的首页
DirectoryIndex index.php index.html
首页目录下添加PHP类型的首页,可使用浏览器测试
vi /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
浏览器测试“http://192.168.10.154/index.php”
下面测试数据库工作是否正常
mysql -u root -p //进入数据库
CREATE DATABASE sky; //创建sky库
GRANT all ON sky.* TO ‘skyuser‘@‘%‘ IDENTIFIED BY ‘admin123‘; //允许任何网段用skyuser用户,admin123密码访问
flush privileges; //刷新
#修改PHP类型的首页文件内容为如下内容
<?php
$link=mysql_connect(‘192.168.175.130‘,‘skyuser‘,‘admin123‘);
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>
再次使用浏览器进行访问
4、Memcached API客户端
1、安装memcache
yum install autoconf -y
tar xzvf memcache-2.2.7.tgz -C /opt/
cd /opt/memcache-2.2.7
/usr/local/php5/bin/phpize //增加为PHP的模块后再对memcache进行配置编译
./configure --enable-memcache --with-php-config=/usr/local/php5/bin/php-config //配置
make && make install
/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/ //记录编译安装完的最后一行此内容,下面用到
vim /usr/local/php5/php.ini //搜索并修改下面一行,再新增一行内容如下
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/" //上面记录的内容
extension = memcache.so
以下是在客户端去检测服务端是否可以连接
vim /usr/local/httpd/htdocs/index.php //编写测试页面,测试memcached工作是否正常
#重新插入如下内容
<?php
$memcache = new Memcache();
$memcache->connect(‘192.168.175.128‘,11211);
$memcache->set(‘key‘,‘Memcache test Successfull!‘,0,60);
$result = $memcache->get(‘key‘);
unset($memcache);
echo $result;
?>
systemctl restart httpd.service //重启Apache
http://192.168.10.154/index.php //输入客户端地址测试是否成功
以上是关于高性能内存对象缓存Memcached安装及数据库操作与管理的主要内容,如果未能解决你的问题,请参考以下文章