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
    评论
### 回答1: 为了实现 Nginx、Django、MySQLRedis 的高可用架构,您可以使用以下步骤: 1. Nginx 集群:通过使用 Nginx 的负载均衡功能,您可以将多台服务器组合在一起,从而实现高可用性。 2. Django 集群:通过在多台服务器上运行 Django 应用程序,并使用 Nginx 对请求进行负载均衡,您可以实现 Django 的高可用性。 3. MySQL 集群:通过使用 MySQL 的主从复制功能,您可以将多个数据库服务器组合在一起,从而实现数据的高可用性。 4. Redis 集群:通过使用 Redis 的分布式存储功能,您可以将数据存储在多台服务器上,从而实现高可用性。 通过实施这些技术,您可以实现 Nginx、Django、MySQLRedis 的高可用架构。 ### 回答2: 要实现nginx, django, mysql, redis的高可用架构,可以按照以下步骤进行设计与配置。 第一步,搭建负载均衡 使用nginx来实现负载均衡,可以配置多个nginx服务器组成一个集群,采用轮询或者IP hash等负载均衡算法,将流量均匀分配给后端的django服务器。 第二步,配置django高可用 可以通过使用uwsgi或者gunicorn等工具将django应用部署为多个实例,并将它们放在不同的服务器上。通过配置nginx反向代理,将请求通过负载均衡方式分发给这些实例。当有实例出现故障时,负载均衡将请求自动切换到健康的实例上。 第三步,设置mysql高可用 数据库是应用的核心组件,可以通过使用主从复制来实现mysql的高可用性。将一台mysql服务器配置为主服务器,多台配置为从服务器,主服务器负责写操作,从服务器进行读操作。当主服务器发生故障时,可以通过自动切换将从服务器提升为主服务器,确保数据库的可用性。 第四步,配置redis高可用 可以使用redis的主从复制或者redis集群来实现高可用性。主从复制,将一台redis服务器配置为主服务器,多台配置为从服务器。主服务器负责写操作,从服务器进行读操作。在主服务器发生故障时,可以将从服务器提升为主服务器。在redis集群,将多个redis节点组成一个集群,每个节点保存部分数据,通过使用一致性哈希算法将数据均匀分布在不同的节点上,当有节点出现故障时,集群会自动进行恢复。 通过以上步骤的配置与设计,可以实现nginx, django, mysql, redis的高可用架构,确保系统能够在单个组件出现故障时继续提供服务。 ### 回答3: 要实现nginx django mysql redis高可用架构,可以采用以下步骤: 1. 配置负载均衡:使用nginx作为反向代理服务器,通过配置upstream来实现负载均衡。将多个django应用部署在不同的服务器上,且这些服务器的IP都添加到upstream。这样,nginx将根据负载均衡算法将请求分发到不同的django应用服务器。 2. 数据库高可用:使用MySQL的主从复制或者主从集群来实现数据库的高可用。在主从复制,将一个MySQL服务器配置为主服务器,其他服务器配置为从服务器。主服务器负责写操作,从服务器负责读操作。在主从集群,使用多个MySQL实例进行复制,并通过主服务器自动选举机制来保证高可用性。这样,当其一个数据库服务器出现故障时,其他服务器仍然可以提供服务。 3. 缓存层高可用:使用redis的主从复制或者redis集群来实现缓存层的高可用。在主从复制,将一个redis服务器配置为主服务器,其他服务器配置为从服务器。主服务器负责写操作,从服务器负责读操作。在redis集群,使用多个redis节点进行数据分片,同时实现数据复制和故障转移。这样,当其一个redis节点出现故障时,其他节点仍然可以提供服务。 4. 监控和故障转移:使用监控系统对nginx、django、mysqlredis进行监控,及时发现并处理故障。使用自动化工具来实现故障转移,当一个节点或服务器故障时,自动将请求切换到其他正常的节点或服务器上。 通过以上的架构设计,可以实现nginx django mysql redis的高可用性,提高系统的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吴爃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值