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文件测试: 文件内容代码如下:

<?php

phpinfo();

?>

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

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

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

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

<?php
$link=mysql_connect(‘192.168.42.28:3306','memcache',‘Nebula@123');
if($link)  echo "<h1>Success!!</h1>";
else echo "Fail!!"; mysql_close();
?>

  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端,和他的端口号

<?php
$memcache = new Memcache;
$memcache->connect('192.168.42.29', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>";
$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)<br/>";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>";
var_dump($get_result);
?>

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

配置session(在web端配置)

vim /etc/php.ini

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

session.save_handler = memcache

session.save_path ="tcp://192.168.181.5: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

<?php
session_start();
if (!isset($_SESSION['session_time']))
{    
	$_SESSION['session_time'] = time();
}
echo "session_time:".$_SESSION['session_time']."<br />";
echo "now_time:".time()."<br />";
echo "session_id:".session_id()."<br />";
?>

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

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内存中的东西,即是在刷新,也是从内存中来获取数据,以此达到了数据缓存的方式.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴爃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值