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

[经验分享] 高性能内存对象缓存Memcached安装及数据库操作与管理

[复制链接]

尚未签到

发表于 2018-12-25 12:39:09 | 显示全部楼层 |阅读模式
认识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

浏览器测试“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类型的首页文件内容为如下内容

再次使用浏览器进行访问



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工作是否正常
#重新插入如下内容

systemctl restart httpd.service     //重启Apache
http://192.168.10.154/index.php  //输入客户端地址测试是否成功






运维网声明 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-655703-1-1.html 上篇帖子: #Memcached系列#(6)使用Enyim.Caching访问Memcached的一个C#控制台程序 下篇帖子: memcached精讲第一部
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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