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

环境说明 以下为我的ip分配

IP地址环境
192.168.152.129redis
192.168.152.130Web(PHP)
192.168.152.131mysql

关闭防火墙        关闭getenforce

systemctl stop firewalld

同步时间

yum -y install ntp ntpdate #下载ntp服务
ntpdate cn.pool.ntp.org
hwclock --systohc

 场景实战搭建

1、安装PHP(WEB服务器安装,不要安装错地方了)

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

 2、安装PHP的Redis扩展(WEB服务器安装,不要安装错地方了)

wget http://pecl.php.net/get/redis-2.2.7.tgz #下载包
tar -zxvf redis-2.2.7.tgz    #解压包
cd redis-2.2.7/    #切换到redis-2.2.7的目录
phpize
./configure 
make install 

 

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

 vim修改/etc/php.ini,添加redis的扩展

extension = redis.ao

 重启web服务器的httpd服务

systemctl restart httpd

在httpd的发布目录下编辑如下PHP页面,然后访问

创建index.php,在index.php中输入如下代码

<?php
phpinfo();
?>

 最后查看PHPinfo,显示如下,代表安装成功

 安装redis(在redis中安装)

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

编写PHP的测试代码

创建redis.php,在redis.php中输入如下代码 编写redis.php到你的httpd服务器的发布目录

<?php
        $redis = new Redis();
        $redis->connect('192.168.152.129',6379) or die ("could net connect redis server"); #这里的ip地址为redis的IP地址
        #$query = "select * from test1 limit 9";
        $query = "select * from test1"; #这里是你的数据库中的表名
        for ($key = 1; $key < 10; $key++)
        {
                if (!$redis->get($key))
                {
                        $connect = mysql_connect('192.168.152.131','root','Lwj@1229');#这里的ip为你的mysql数据库的ip地址,密码为mysql的密码
                        mysql_select_db(tom); #这里为数据库的库名
                        $result = mysql_query($query);
                        //如果没有找到$key,就将该查询sql的结果缓存到redis
                        while ($row = mysql_fetch_assoc($result))
                        {
                                $redis->setex($row['id'],10,$row['name']);
                        }
                        $myserver = 'mysql';
                        break;
                }
                else
                {
                        $myserver = "redis";
                        $data[$key] = $redis->get($key);
                }
        }
        echo $myserver;
        echo "<br>";
        for ($key = 1; $key < 10; $key++)
        {
                echo "number is <b><font color=#FF0000>$key</font></b>";

                echo "<br>";

                if (array_key_exists($key,$data) && !empty($data[$key])) {
                        echo "name is <b><font color=#FF0000>$data[$key]</font></b>";

测试验证

要先和redis连接,才能查询到数据库中的数据

 

如上即为实现了redis作为mysql的缓存服务器

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值