栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux下memcached缓存服务搭建:

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux下memcached缓存服务搭建:

memcached主机: 192.168.181.5

web主机: 192.168.181.4

mysql主机: 192.168.181.6

首先需要将三台主机上的时间进行同步,可以使用ntp服务.

同时,需要将三台主机防火墙全部关闭,:

systemctl disable firewalld

systemctl stop iptables

在这里将seLinux 中的配置也关了.文件路径: /etc/selinux/conf

1.在web服务器上,卸载系统默认的mysql版本

rpm -e mariadb-libs postfix

安装数据库软件,如果是克隆过来的因为已经安装过了则不需要安装

过程略,如果没有安装参考之前的mysql课件安装

安装lnmp环境

yum install httpd php php-gb php-mysql php-memcache

启动apache服务

systemctl restart httpd

stemctl enable httpd

2在数据库端创建用户,和修改用户权限.

mysql> create user 'memcache'@'%' identified by 'Nebula@123';

mysql> ALTER USER'memcache'@'%' IDENTIFIED WITH mysql_native_password BY 'Nebula@123';

mysql> flush privileges;

 

  1. 在web服务器上测试http的状态,在/var/www/html/ 下创建页面index.html文件

然后进行访问测试,在浏览器中访问web主机的ip地址,测试,成功显示,页面内容则是配置正确.

 

  1. 再在目录下创建,index.php文件测试: 文件内容代码如下:

phpinfo();

?>

然后继续用浏览器测试,页面显示成功如下:

 

在这个页面上可以看到很多的配置信息和版本信息.

php链接正常,后可以进行测试,mysql的链接.

新建一个mysql.php文件,代码如下::



  1. 页面出现success则是成功链接.

这里如果出现失败或者其他错误可以查看: /var/log.httpd/error_log

也可以使用追踪: tail -f /var/log/httpd/error_log  查看最新的日志信息.

这里一般出错原因就是在: 数据连接数过多, 防火墙 ,数据库用户名和密码错误.

上述步骤成功后

开始配置memcache服务

在memcache主机上,

下载并安装memcache服务.

yum安装

yum install gcc gcc-c++ libevent-devel 

yum install memcached 

测试;

首先终结之前启动的memcache进行.

然后重新启动;  /usr/local/memcached/bin/memcached -d -l 0.0.0.0 -p 11211 -u root -m 64 -c 1024 -P /var/run/memcached.pid

如果是yum安装的则不需要添加路径.,然后可以使用ps-ef| grep memcache 查看一下进程是否存在.

然后再回到web服务器上: 做代码测试;

在 var/www/html 下创建memcache.php

代码如下;这里的IP地址为memcached端,和他的端口号

connect('192.168.42.29', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."
"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds)
"; $get_result = $memcache->get('key'); echo "Data from the cache:
"; var_dump($get_result); ?>

出现以下界面则表示成功.:

配置session(在web端配置)

vim /etc/php.ini

//  把这段放在最下面即可,IP地址为web端地址

session.save_handler = memcache

session.save_path ="tcp://192.168.42.29:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

 

扩展: session.save_handler:设置session的储存方式为memcache。默认以文件方式存取session数据,如果想要使用自定义的处理来存取session数据,比如 memcache方式则修为session.save_handler =memcache

session.save_path:设置session储存的位置,多台memcache用逗号隔开

测试memcached的可用性; vim/var/www/html/memcached1.php

";
echo "now_time:".time()."
"; echo "session_id:".session_id()."
"; ?>

到数据主机上创建测试数据库;

create database testab1;
use testab1;
create table test1(id int not null auto_increment,name varchar(20) default null,primary key(id)) engine=innodb auto_increment=1 default charset=utf8;
insert into test1(name) values ('tom1'),('tom2'),('tom3'),('tom4'),('tom5');

对memcache用户赋予库testab1的查看权限

mysql> grant select on testab1.* to memcache@'%';

查看结果如下:

创建好了之后, 在web主机上, 在创建文件: /var/www/html/memcched2.php

这里需要注意,所选择的数据库和表是在mysql主机已经创建的,同时是该用户拥有权限查看的.

第一次浏览器访问页面,(可以看出第一次访问缓存中没有内容,所以是从mysql中直接访问数据源)

 

刷新页面之后,可以看到当前访问的是memcache内存中的东西,即是在刷新,也是从内存中来获取数据,以此达到了数据缓存的方式.

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612646.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号