redis服务器环境下mysql实现架构缓存

基于memcache实例搭建:

web(php)主机: 192.168.181.6

redis主机: 192.168.181.5

mysql主机: 192.168.181.4

首先关闭三台主机的防火墙

systemctl stop firewalld

systemctl disable firewalld

sed -i ‘s/enforcing/disabled/’/etc/selinux/config

setenforce 0

同步时间

yum -y install ntp ntpdate

ntpdate cn.pool.ntp.org

hwclock --systohc

  1. 在web服务器端,安装插件:
  2. yum install php php-fpm php-cli php-common php-gd php-mbstring php-mysql php-pdo php-devel php-xmlrpc php-xml php-bcmath php-dba php-enchant
  3. yum install gcc gcc-c++
  4. 安装php的redis扩展:  

4.将压缩包解压到文件中;  

5,然后再目录下进行解压: tar -zxvf 文件,进入目录, cd redis-2.2.7/

7执行命令:./configure

  1. 执行make  install 可能会出现一个错误(atal error: zend_smart_str.h: No such file or directory

是php中redis模块没有加载的错误需要下载插件)

使用如下命令: wget http://pecl.php.net/get/redis-2.2.7.tgz

将这下载的包放入到于上面相同的目录下.

8.然后进行解压: tar -zxvf redis-2.2.7.tgz

  1. cd redis-2.2.7/
  2. ./configure --with-php-config=/usr/bin/php-config

然后执行make命令,就不会在报错了,

10.编译完成后就可以看到安装目录下,进入就可以看到编译的模块redis.so

 

  1. 使用vim修改配置文件; /etc/php.ini;在文件最后添加: extension=redis.so
  2. 重启web服务器的httpd服务;systemctl restart httpd
  3. 在/var/www/html 目录下创建php页面代码:
  4. <?php
    phpinfo();
    ?>
    

  5. .然后进行访问

 

然后在window下浏览器中访问该页面: 出现一下页面则表示前面的配置成功

//

在redis主机上安装redis:

yum install -y gcc gcc-c++

wget -c -t 0 http://download.redis.io/releases/redis-2.8.19.tar.gz

tar xvf redis-2.8.19.tar.gz (任意目录)

cd redis-2.8.19

make 

安装好后目录如下:

 

这里还需要修改redis的配置文件:

在redis.conf文件中: 将daemonize no改为yes(表示开启后台启动.)

同时将如图所示的文件中哪一行注释掉.

然后在后台启动redis:

使用命令: src/redis-server redis.conf

如果有错误可以参考我的另一篇文章:(1条消息) Redis安装测试_ゾ 吴爃ヅ的博客-CSDN博客icon-default.png?t=LA92https://blog.csdn.net/qq_59369367/article/details/121596185

启动如果没有报错,则配置正确

在转到web主机上: 在/var/www/html/目录下创建redis.php测试页面:

 

代码如下:

<?php

        $redis = new Redis();

        $redis->connect('192.168.181.5',6379) or die ("could net connect redis server");

        $query = "select * from  employee5  limit 8";    //红这里是你的数据库里的表名

        //为了简单一点,这里就读取了8条数据

        for ($key = 1; $key < 9; $key++)

        {

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

                {

                        $connect = mysql_connect('192.168.181.4','root','Nebula@123');

//这里是你的数据ip地址和用户名,密码.

                        mysql_select_db(test);    //这里是你的数据库名

                        $result = mysql_query($query);

                        //如果没有找到$key,就将该查询sql的结果缓存到redis

                        while ($row = mysql_fetch_assoc($result))

                        {

                                $redis->set($row['id'],$row['name']);

                        }

                        $myserver = 'mysql';

                        break;

                }

                else

{

                        $myserver = "redis";

                        $data[$key] = $redis->get($key);

                }

        }

        echo $myserver;

        echo "<br>";

        for ($key = 1; $key < 9; $key++)

        {

                echo "number is <b><font color=#FF0000>$key</font></b>";

                echo "<br>";

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

                echo "<br>";

        }

?>

然后去浏览器中访问该页面:

第一次访问: (数据会首先从mysql数据库直接访问,)

 

再次刷新访问的时候: 此时redis已经有了相关数据,会显示出redis中内容是以键值对方式.

 

到这里就是测试链接成功了.

排错: 在最后链接的地方很容易报错:

这里大部分错误时因为防火墙的原因,数据库主机的防火墙,selinux,都要关闭.

你所使用的数据库用户,要有你所查看的数据库的访问权限,

使用该命令:select user,host,plugin from mysql.user;

可以查看到所给的权限,

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吴爃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值