memcache部署安装

准备:

IP地址

环境

192.168.63.252

memcache

192.168.63.251

web

192.168.63.250

mysql

三台服务器均关闭防火墙:systemctl stop firewalled     //临时关闭

systemctl disable firewalld   //永久关闭

如果配置了iptables防火墙,也要关闭。

setenforce 0  //关闭selinux

同步三台服务器的时间

Web服务器(192.168.63.251)

安装好mysql

安装inmp环境

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

启动apache服务

systemctl restart httpd

systemctl enable httpd

(没有请安装)

Mysql服务器(192.168.63.250)

在数据库中创建用户

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

修改密码插件

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

重载用户权限

flush privileges;

查看用户及密码插件

select Host,user,plugin from mysql.user;

 Web服务器(192.168.63.251)

Web网页:vim /var/www/html/index.html     //随意添加内容

主机浏览器访问192.168.63.251

默认为80端口

测试php

创建文件:vim /var/www/html/index.php

添加内容:

<?php

phpinfo();

?>

主机访问:192.168.63.251/index.php

 

测试mysql

创建并填写文件

cat /var/www/html/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();

?>

 主机访问:192.168.63.251/mysql.php

505表示代码编写错误,Fail表示无法连接

查看报错文件:此目录下的/var/log/hpptd中的error_log文件

Memcache服务器(192.168.63.252)

安装memcache

yum install gcc gcc-c++ libevent-devel    //安装依赖

yum install memcached      //安装memcache

查看ps -ef |grep memcached

 

多余memcached就将其关闭

memcached -d -l 0.0.0.0 -p 11211 -u root -m 64 -c 1024 -P /var/run/memcached.pid

启动memcached

再次查看ps -ef |grep memcached

 Web服务器(192.168.63.251)

创建文件并添加内容

vi /var/www/html/memcache.php

<?php

$memcache = new Memcache;

$memcache->connect('192.168.63.252', 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);

?>

Ip为memcache服务器的IP地址

本机浏览器上访问:192.168.63.251/memcache.php

 配置session(web端192.168.63.251)

在vim /etc/php.ini文件的最后加入:

session.save_handler = memcache

session.save_path="tcp://192.168.63.251:11211persistent=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的可用性

创建文件并添加:vi /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 />";

?>

 在主机浏览器中访问192.168.63.251/memcached1.php

 mysql服务器(192.168.63.250)

进入数据库

创建数据库: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的查看权限

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

查看:show grants for memcache@'%';

 

Web服务器(192.168.63.251)

创建目录并添加:vi /var/www/html/memcached2.php

<?php

$memcachehost = '192.168.63.252';

//memcache服务器的ip

$memcacheport = 11211;

$memcachelife = 60;

//缓存时间,秒

$memcache = new Memcache;

$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");

$query="select * from test1 limit 10";

//查询语句(最多10行)

$key=md5($query);

if(!$memcache->get($key))

{

$conn=mysql_connect("192.168.63.250","memcache","Nebula@123");

//mysql服务器ip,用户,密码

mysql_select_db(testab1);

//数据库名

    $result=mysql_query($query);

    while ($row=mysql_fetch_assoc($result))

    {

        $arr[]=$row;

    }

    $f = 'mysql';

    $memcache->add($key,serialize($arr),0,30);

    $data = $arr ;

}

else{

    $f = 'memcache';

    $data_mem=$memcache->get($key);

    $data = unserialize($data_mem);

}

echo $f;

echo "<br>";

echo "$key";

echo "<br>";

//print_r($data);

foreach($data as $a)

{

echo "number is <b><font color=#FF0000>$a[id]</font></b>";

echo "<br>";

echo "name is <b><font color=#FF0000>$a[name]</font></b>";

echo "<br>";

}

?>

主机浏览器访问:192.168.63.251/memcached2.php

刷新网页mysql会发生改变为memcache

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值