• 实战项目之升级网站运行平台


    原始环境:tomcat做网站,数据库一主一从,两台调度器(haproxy+keepalived)多台网站服务器,多台(6台以上)ceph文件存储

    现在把网站的tomcat平台升级为LNMP架构以及优化网站的速度,添加redis存储(提高用户体验),把mysql集群,升级为PXC集群。,并且在MYSQL实现负载均衡以及高可用的方案。

    升级思路:

    1:配置三台LNMP的环境(此时用三台服务器代表网站服务器集群)

      停止网站服务,

      卸载共享存储

      配置LNMP环境:编译、安装、配置、起服务、编写脚本测试mysql

    一、升级网站运行平台 tomcat(java) ----> LNMP(PHP)

    1.1 清除当前环境
                1.1.1 停止tomcat服务
                1.1.2 卸载当前挂载
                1.1.3 禁止开机挂载
        
        1.2 部署LNMP
                1.2.1 安装源码的Nginx
                1.2.2 安装php 和 php-fpm  、php-devel  php-mysql
                1.2.3 修改nginx主配置文件
                      挂载30主机的共享目录
                1.2.4 启动nginx 服务
                1.2.5 启动php-fpm服务
    1.3 测试配置 
            1.3.1 在30主机 编写PHP脚本连接11 存储数据
    [root@nfs30 ~]#  vim  /sitedir/test2.php 
    <?php
    $conn=mysql_connect("192.168.4.11","plj","123qqq...A");
    mysql_select_db(“gamedb");
    $sql = 'insert into user (name,password) values ("jing","123456")';
    mysql_query($sql);
    mysql_close();
    echo "save data ok"; 
    ?>

    1.3.2 在33主机查看网页文件
    #在命令行测试连接
    ]# mysql -h192.168.4.11 -uplj -p123qqq...A
     
    ls /usr/local/nginx/html/test2.php
     
    1.3.3 用真机充当客户端访问33主机 的test2.php
    打开浏览器 输入 http://192.168.4.33/test2.php
    save data ok
     
    1.3.4 在11数据库服务器本机查询
    ]# mysql -uroot -p123qqq...A -e 'select * from gmedb.user'
    #能够查看到test2.php里添加的用户和密码 ("jing","123456")';
    图形页面注册 
    [root@host30 ~]# vim /sitedir/tx.html
             
    <html>
            <body>
                    <form action="test3.php" method="post" >
                            username:<input type="text" name="username" size="20" maxlength="15" /> <br/> <br/>
                            password:<input type="password" name="password" size="20" maxlength="15" />
            <br/><br/>
                 <input type="submit" name="submit" value="zhuche" />
                 <input type="reset" name="cancel"  value="quxiao" />
    
    
                    </form>
            </body>        
    vim /sitedir/test3.php
    <?php
    $password = $_POST['password'];
    $username = $_POST['username'];
    
    $conn = mysql_connect("192.168.4.11","plj","123qqq...A");
    mysql_select_db("gamedb", $conn);
    
    $sql = "insert into user values ('$username','$password')";
    mysql_query($sql,$conn);
    
    echo "save ok" ;
    ?>       
    在客户端访问网站 33    
    http://192.168.4.33/tx.html
         plja
         123456
    
    在 数据库服务器本机查看图形界面输入的用户和密码
    [root@mysql11 ~]# mysql -uroot -p123qqq...A -e 'select * from gamedb.user'
    
    
    二、部署内存存储服务 (实现网站加速,把网站的热点数据,事先存储在内存服务服务器里)
        2.1 创建redis集群
               1 准备6台redis服务器
               2 分别启用6台服务的集群功能
               3 配置管理主机
               4 创建集群 (6台集群都不允许有数据和连接密码)
               5 查看集群信息
             时间到11:50 
               
        2.2 配置网站可以连接redis集群
              1 安装软件提供模块   redis-cluster-4.3.0.tgz
               2 调用模块
              3 查看Redis模块
              
        2.3 测试集群
            2.3.1  在 30主机的共享目录下编写php脚本
                   #编写存储数据的脚本
    ]#vim /sitedir/set.php
    
    <?php
    $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];
    $client = new RedisCluster(NUll,$redis_list);
    $client->set("i","tarenaA ");
    $client->set("j","tarenaB ");
    $client->set("k","tarenaC ");
    echo "save data over"
    ?>
    :wq
       #查询数据脚本
    ]# vim  /sitedir/get.php               
    <?php
    $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];
    
    $client = new RedisCluster(NUll,$redis_list);
    
    echo $client->get("i");
    echo $client->get("j");
    echo $client->get("k");
    
    ?>
    :wq
    
            存储+查询
    ]# vim  /sitedir/sg.php               
    <?php
    $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];
    
    $client = new RedisCluster(NUll,$redis_list);
    
    $client->set("school","tarena");
    echo  $client->get("school");
    ?>
    2.3.2 在客户端访问33网站服务器执行脚本
    ]# curl http://192.168.4.33/set.php

    2:先把PXC集群中的其中一台服务器做成原始MYSQL主服务器的从服务器。用热备的方式进行全备,全备完后,停止全备的mysql服务,删除mysql的所有软件包,但不删除关于mysql的所有内容。卸载完成后,开始装PXC软件包,配置PXC内部的信息(此时,在内部有添加集群的信息,请务必不要填写任何集群。为什么不需要填写?),启动PXC服务。此时配置第二台和第三台PXC服务器,在集群的内部填写PXC1的IP以及自身的IP(把PXC1中的数据同步到自生)。此时都同步完成后,在PXC1创建一个表以及添加一个字段在内部添加些许内容(试一下其他两台服务器内容是否同步,如果同步。)。如果同步则在所有PXC机子内的集群配置信息,填写齐所有PXC集群信息的IP。填写完成后,我们在其中PXC1集群创建的表内,添加一个字段并且设置主机且设置为自增长。

      以上操作就已经把数据库的所有信息同步到PXC集群中。

    3:用两台服务器做成PXC集群的负载均衡以及高可用

      我们可以在内部安装HAPROXY和keepalived软件实现PXC集群的负载均衡以及高可用

    四、部署集群
        4.1 LB集群(带健康检查的LB集群)
            使用IP地址ip  192.168.4.99 做调度器 把请求
            平均分发给PXC集群中的主机 66  10   88
            192.168.4.99做如下配置:
                    1 安装haproxy软件
                    yum -y install haproxy
                    
                    2 修改配置文件
    [root@haproxy99 ~]# vim /etc/haproxy/haproxy.cfg 
    listen mysql_3306 *:3306
        mode    tcp                     //mysql 使用 tcp 协议
        option  tcpka                  //使用长连接
        balance roundrobin            //调度算法
        server  mysql_01 192.168.4.66:3306 check 
        server  mysql_02 192.168.4.10:3306 check 
        server  mysql_03 192.168.4.88:3306 check 
    
                    
                    3 启动haproxy服务
    [root@haproxy99 ~]# systemctl  start haproxy
    [root@haproxy99 ~]# netstat -utnlp  | grep  3306
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*    LISTEN      1271/haproxy                  
                    
                    4 web33 连接调度器99 访问mysql服务
            
    [root@web33 ~]# mysql -h192.168.4.99 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | pxc10      |
    +------------+
    [root@web33 ~]# mysql -h192.168.4.99 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | pxc88      |
    +------------+
    [root@web33 ~]# mysql -h192.168.4.99 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | host66     |
    +------------+
    [root@web33 ~]# 
            
        
        4.2 HA集群 (解决调度器99 主机的 单点故障问题)
        让192.168.4.98 主机做备用的调度器,具体配置如下:
                1. 安装haproxy软件
                yum -y install hapxory
                2. 修改配置文件
    host99]# scp /etc/haproxy/haproxy.conf  root@!92.168.4.98:/etc/haproxy/            
                3. 启动haprxoy服务
                systemctl  start  haproxy
                netstat -utnlp  | grep 3306
                
    测试备用的调度器98
    [root@web33 ~]# mysql -h192.168.4.98 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | pxc10      |
    +------------+
    [root@web33 ~]# mysql -h192.168.4.98 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | pxc88      |
    +------------+
    [root@web33 ~]# mysql -h192.168.4.98 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | host66     |
    +------------+
    
    
                
                4. 配置ha集群
                    4.1 分别在 9998 主机 安装kepalived软件
                    ]# yum -y install keepalived
                    
                    4.2 分别修改99 和 98 主机 配置文件目录)
    host99]# ]# vim /etc/keepalived/keepalived.conf 
    
    #删除文件中37行开始的下方所有行
    
    vrrp_iptables
    }
    
    vrrp_instance VI_1 {
        state MASTER  角色
        interface eth0  vip 部署的网卡口
        virtual_router_id 51
        priority 150  优先级
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }   
        virtual_ipaddress {
            192.168.4.100 vip地址
        }   
    }
    :wq
    
    [root@haproxy99 ~]# scp /etc/keepalived/keepalived.conf root@192.168.4.98:/etc/keepalived/
    
    host98]#  vim /etc/keepalived/keepalived.conf 
    
     vrrp_iptables
    }
    
    vrrp_instance VI_1 {
        state BACKUP 角色
        interface eth0
        virtual_router_id 51
        priority 100 优先级 
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.4.100
        }
    }
                    
                    
                    4.3 分别启动99 和 98 主机keepalived服务
    [root@haproxy99 ~]# systemctl  start keepalived                
    [root@haproxy98 ~]# systemctl  start keepalived                
                    
                    4.4 查看vip 地址
    [root@haproxy99 ~]# ip addr show | grep  192.168.4.100
        inet 192.168.4.100/32 scope global eth0
                    
                5.测试高可用集群
                     5.1 在99主机停止keepalived服务 
                     5.2 在98 可以查看到 Vip 地址
    
                6 网站33主机 连接vip地址 访问数据库服务 
    [root@web33 ~]# mysql -h192.168.4.100 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | pxc10      |
    +------------+
    [root@web33 ~]# mysql -h192.168.4.100 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | pxc88      |
    +------------+
    [root@web33 ~]# mysql -h192.168.4.100 -uplj -p123qqq...A -e 'select @@hostname'
    +------------+
    | @@hostname |
    +------------+
    | host66     |
    +------------+
    [root@web33 ~]#          

    4:设置redis集群,提高用户的体验

      准备七台服务器:其中六台作为redis服务器,一台作为redis集群的管理机。

    三、数据迁移 (在线迁移)
        3.1  把66主机配置为11的slave 服务器,具体操作如下:        
                1 安装软件mysql-5.7.17.tar              
                2 修改配置文件 (指定server_id=663 启动mysqld服务 
                4 确保数据一致 (使用innobackupex命令)
                    4.1  配置11主机
                             具体操作如下 :
    ]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
    ]# yum -y  install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm
    ]# innobackupex  --user root --password 123qqq...A  --slave-info  /allbak --no-timestamp   //--slave-info 记录日志信息
    ]# scp -r /allbak  root@192.168.4.66:/root/
    
                    4.2 配置66主机,具体操作如下 :
    ]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
    ]# yum -y  install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm                
                    #使用备份文件恢复数据
    325  innobackupex  --apply-log /root/allbak
      326  innobackupex  --copy-back /root/allbak
      327  ls /var/lib/mysql
      328  ls /var/lib/mysql -l
      329  chown -R mysql:mysql /var/lib/mysql 
      330  ls /var/lib/mysql -l
      331  systemctl  start mysqld
      332  mysql -uroot -p123qqq...A
    mysql> select  * from gamedb.user;
    mysql> select user from mysql.user;
    
                 5 指定主服务器 (change master  to)
    [root@host66 ~]# grep "master11" /root/allbak1/xtrabackup_info 
    binlog_pos = filename 'master11.000003', position '966'             
        
    ]#mysql -uroot  -p123qqq...A
    mysql> change mater to  master_host="192.168.4.11",
    master_user="repluser",master_password="123qqq...A",
    master_log_file="master11.000003",master_log_pos=966;
    
    mysql> start slave;
        
              6 查看状态信息  show  slave  statusG;
                Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                Master_Host: 192.168.4.11
                
              7 在33主机,命令行连接11 存储数据
    [root@web33 ~]# mysql -h192.168.4.11 -uplj -p123qqq...A 
    -e ' insert into gamedb.user values("jerry","787878")'
              
              8 在66主机可以查看到同样的数据
    [root@web33 ~]# mysql -h192.168.4.66 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where user="jerry"'
    
        3.2  创建PXC集群
            3.2.1  在pxcnode66主机,做如下配置:
    停止mysqld服务 systemctl stop mysqld
    
    卸载mysqld服务软件
    ]# rpm -qa  | grep  mysql
    
    ]# rpm -e --nodeps mysql-community-common mysql-community-devel 
    mysql-community-test mysql-community-minimal-debuginfo 
    mysql-community-libs mysql-community-server 
    mysql-community-embedded mysql-community-embedded-devel 
    mysql-community-embedded-compat 
    mysql-community-client mysql-community-libs-compat
    
    安装PXC软件
    ]# cd pxc
    ]# rpm -q libev || yum -y install  libev-4.15-1.el6.rf.x86_64.rpm
    ]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
    ]# yum -y install qpress-1.1-14.11.x86_64.rpm
    ]# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
    ]# yum -y install Percona-XtraDB-Cluster-*.rpm
    
    
    修改配置文件
    [root@host66 pxc]# cd /etc/percona-xtradb-cluster.conf.d/
    
            ]# vim  mysqld.cnf
    [mysqld]
    server-id=66
    :wq
            
            ]# vim  wsrep.cnf
    wsrep_cluster_address=gcomm://
    wsrep_node_address=192.168.4.66
    wsrep_cluster_name=pxc-cluster
    wsrep_node_name=pxc-cluster-node-66
    wsrep_sst_auth="sstuser:123qqq...A" 
    :wq
            
    启动mysql服务
    ]# ls /var/lib/mysql/
    [root@host66 ~]# systemctl  start mysql
    [root@host66 ~]# netstat -utnlp  | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      3342/mysqld         
    [root@host66 ~]# 
    [root@host66 ~]# netstat -utnlp  | grep 4567
    tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      3342/mysqld         
    [root@host66 ~]# 
    
    数据库管理员登录
    [root@host66 ~]# mysql -uroot -p123qqq...A
    用户授权
    mysql> grant all on *.* to sstuser@"localhost" identified by "123qqq...A";
    
    查看状态信息
    [root@host66 ~]# mysql -uroot -p123qqq...A
    mysql> show slave status G
                Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                
    mysql> show status like "%wsrep%" ;
    wsrep_incoming_addresses         | 192.168.4.66:3306         
    wsrep_cluster_status             | Primary    
        
    测试66主机:
            1 网站主机在命令行连接11 主机存储数据
    [root@web33 ~]# mysql -h192.168.4.11 -uplj -p123qqq...A 
    -e ' insert into gamedb.user values("lili","120120")'
    [root@web33 ~]# 
            
            2 网站主机在命令行连接66 主机 也可以查看到存储的数据
    [root@web33 ~]# mysql -h192.168.4.66 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where name="lili"'
    +------+----------+
    | name | password |
    +------+----------+
    | lili | 120120   |
    +------+----------+
    [root@web33 ~]# 
            
    
            3.2.2 配置 88主机,如下配置:
                1 安装pxc软件
    ]# cd pxc
    ]# rpm -q libev || yum -y install  libev-4.15-1.el6.rf.x86_64.rpm
    ]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
    ]# yum -y install qpress-1.1-14.11.x86_64.rpm
    ]# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
    ]# yum -y install Percona-XtraDB-Cluster-*.rpm            
                2 修改配置文件
    [root@host88 pxc]# cd /etc/percona-xtradb-cluster.conf.d/
    
            ]# vim  mysqld.cnf
    [mysqld]
    server-id=88
    :wq
            
            ]# vim  wsrep.cnf
    wsrep_cluster_address=gcomm://192.168.4.66
    wsrep_node_address=192.168.4.88
    wsrep_cluster_name=pxc-cluster
    wsrep_node_name=pxc-cluster-node-88
    wsrep_sst_auth="sstuser:123qqq...A" 
    :wq
            
    启动mysql服务
    ]# ls /var/lib/mysql/
    [root@host88 ~]# systemctl  start mysql            
    [root@host88 ~]# netstat -utnlp  | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      3342/mysqld         
    
    [root@host88 ~]# netstat -utnlp  | grep 4567
    tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      3342/mysqld         
                     
    
    管理员root 本机登录查看数据            
    mysql> select  * from gamedb.user;
    mysql> mysql> show status like "%wsrep%";
    wsrep_incoming_addresses | 192.168.4.88:3306,192.168.4.66:3306 |
    
    测试88主机:
            1 网站主机在命令行连接11 主机存储数据
    [root@web33 ~]# mysql -h192.168.4.11 -uplj -p123qqq...A 
    -e ' insert into gamedb.user values("lucy","120120")'
    [root@web33 ~]# 
            
            2 网站主机在命令行连接66和88 主机 也可以查看到存储的数据
    [root@web33 ~]# mysql -h192.168.4.66 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where name="lcuy"'
    +------+----------+
    | name | password |
    +------+----------+
    | lcuy | 120120   |
    +------+----------+
    [root@web33 ~]# 
    [root@web33 ~]# mysql -h192.168.4.66 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where name="lcuy"'
    +------+----------+
    | name | password |
    +------+----------+
    | lcuy | 120120   |
    +------+----------+
    [root@web33 ~]#
    
            
            3.2.3 配置 10主机
                1 安装pxc软件
    ]# cd pxc
    ]# rpm -q libev || yum -y install  libev-4.15-1.el6.rf.x86_64.rpm
    ]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
    ]# yum -y install qpress-1.1-14.11.x86_64.rpm
    ]# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
    ]# yum -y install Percona-XtraDB-Cluster-*.rpm    
    
    2 修改配置文件
    [root@host10 pxc]# cd /etc/percona-xtradb-cluster.conf.d/
    
            ]# vim  mysqld.cnf
    [mysqld]
    server-id=10
    :wq
            
            ]# vim  wsrep.cnf
    wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88
    wsrep_node_address=192.168.4.10
    wsrep_cluster_name=pxc-cluster
    wsrep_node_name=pxc-cluster-node-10
    wsrep_sst_auth="sstuser:123qqq...A" 
    :wq
            
    启动mysql服务
    ]# ls /var/lib/mysql/
    [root@host10 ~]# systemctl  start mysql            
    [root@host10 ~]# netstat -utnlp  | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      3342/mysqld         
    
    [root@host18 ~]# netstat -utnlp  | grep 4567
    tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      3342/mysqld         
                     
    
    管理员root 本机登录查看数据            
    mysql> select  * from gamedb.user;
    mysql> mysql> show status like "%wsrep%";
    wsrep_incoming_addresses | 192.168.4.88:3306,192.168.4.66:3306,192.168.4.10:3306 |
    
    测试88主机:
            1 网站主机在命令行连接11 主机存储数据
    [root@web33 ~]# mysql -h192.168.4.11 -uplj -p123qqq...A 
    -e ' insert into gamedb.user values("lilei","120120")'
    [root@web33 ~]# 
            
            2 网站主机在命令行连接66和88及10 主机 也可以查看到存储的数据
    [root@web33 ~]# mysql -h192.168.4.66 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where name="lilei"'
    +------+----------+
    | name | password |
    +------+----------+
    | lilei | 120120   |
    +------+----------+
    [root@web33 ~]# 
    [root@web33 ~]# mysql -h192.168.4.10 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where name="lilei"'
    +------+----------+
    | name | password |
    +------+----------+
    | lilei | 120120   |
    +------+----------+
    [root@web33 ~]#
    
    [root@web33 ~]# mysql -h192.168.4.88 -uplj -p123qqq...A 
    -e 'select * from gamedb.user where name="lilei"'
    +------+----------+
    | name | password |
    +------+----------+
    | lilei | 120120   |
    +------+----------+
    [root@web33 ~]#        
    3.2.4 三台数据库服务器的公共配置
        host66]# vim wsrep.cnf
    wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10
    
        host88]# vim wsrep.cnf
    wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10
    
        host10]# vim wsrep.cnf
    wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10
            
        3.2.5 给表添加主键字段
    mysql_11]# mysql -uroot  -p123qqq...A
        mysql> alter table gamedb.user add
        id  int  primary key auto_increment first;
        
        mysql> select  * from gamedb.user;
        
        3.2.6 网站服务器连接集群中的任意1台服务器存储数据,
              另外2台服务器会自动同步数据。
    web33]# mysql -h192.168.4.66 -uplj -p123qqq...A -e 
    'insert into gamedb.user(name,password)values("a","a")'
    
    web33]# mysql -h192.168.4.88 -uplj -p123qqq...A -e 
    'select  * from  gamedb.user'
    
    web33]# mysql -h192.168.4.10 -uplj -p123qqq...A -e 
    'insert into gamedb.user(name,password)values("b","b")'          
            
    web33]# mysql -h192.168.4.66 -uplj -p123qqq...A -e 
    'select  * from  gamedb.user'    

      

      配置网站服务器

      1:安装依赖,php-devel

      [root@web33 ~ ]# yum -y install php-devel //安装依赖

    [root@web33 ~]# tar -zxvf redis-cluster-4.3.0.tgz  //解压
    [root@web33 ~]# cd redis-4.3.0/  //进入源码目录
    [root@web33 redis-4.3.0]# phpize  //创建configure命令及配置信息文件/usr/bin/php-config
    Configuring for:
    PHP Api Version:         20100412
    Zend Module Api No:      20100525
    Zend Extension Api No:   220100525
    [root@web33 redis-4.3.0]#
    [root@web33 redis-4.3.0]# ./configure --with-php-config=/usr/bin/php-config
    ……
    ……
    configure: creating ./config.status
    config.status: creating config.h
    config.status: config.h is unchanged
    config.status: executing libtool commands
    [root@web33 redis-4.3.0]#
    [root@web33 redis-4.3.0]# make  //编译
    ……
    ……
    Build complete.
    Don't forget to run 'make test'.
    [root@web33 redis-4.3.0]#
    [root@web33 redis-4.3.0]# make install  //安装
    Installing shared extensions:     /usr/lib64/php/modules/   //提示模块安装目录
    [root@web33 redis-4.3.0]# 
    [root@web33 redis-4.3.0]# ls /usr/lib64/php/modules/ //查看目录列表
    curl.so  fileinfo.so  json.so  mysqli.so  mysql.so  pdo_mysql.so  pdo.so  pdo_sqlite.so  phar.so  redis.so  sqlite3.so  zip.so

    修改配置文件

      

    [root@web33 redis-4.3.0]# vim /etc/php.ini
    728 extension_dir = "/usr/lib64/php/modules/"   //模块目录
    730 extension = "redis.so"   //模块名
    :wq
    [root@web33 redis-4.3.0]# systemctl  restart php-fpm  //重启php-fpm服务
    [root@web33 redis-4.3.0]# php -m   |  grep   -i  redis  //查看模块
    redis

    测试配置

    1)在存储服务器共享目录下,创建连接集群PHP脚本

    nfs30~ ]# vim  /sitedir/set_data.php    //存储数据脚本
    <?php
    $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];  //定义redis服务器列表
    $client = new RedisCluster(NUll,$redis_list); //定义连接redis服务器变量
    $client->set("i","tarenaA "); //存储数据 变量名 i
    $client->set("j","tarenaB ");  //存储数据 变量名 j
    $client->set("k","tarenaC ");  //存储数据 变量名 k 
    ?>
    :wq
    nfs30~ ]# vim   /sitedir/get_data.php    //获取数据脚本
    <?php
    $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379']; //定义redis服务器列表
    $client = new RedisCluster(NUll,$redis_list); //定义连接redis服务器变量
    echo $client->get("i");  //获取变量i 的数据
    echo $client->get("j");  //获取变量j 的数据
    echo $client->get("k");  //获取变量k 的数据
    ?>
    :wq
    nfs30~ ]#  vim   /sitedir/test3.php    //存/取数据脚本
    <?php
    $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];
    $client = new RedisCluster(NUll,$redis_list);
    $client->set(“name“,”panglijing”);  //存数据
    echo $client->get(“name”);  //取数据
    ?>
    :wq

    2)访问网站执行脚本(在任意主机访问网站服务器都可以)

    ]# curl  http://192.168.4.33/set_data.php
    ]# curl  http://192.168.4.33/get_data.php
    ]# curl  http://192.168.4.33/test3.php

    3)命令行连接任意一台redis服务器查看数据(在任意主机连接redis服务器都可以)

    ]# redis-cli  -c  -h  192.168.4.51  -p  6379 
    192.168.4.51:6379> keys  *
    1) i
    192.168.4.51:6379> exit
    ]# redis-cli  -c  -h  192.168.4.52  -p  6379
    192.168.4.52:6379> keys  *
    1) j
    192.168.4.52:6379> exit
    ]# redis-cli  -c  -h  192.168.4.53  -p  6379
    192.168.4.52:6379> keys  *
    1) k
    192.168.4.52:6379> exit

    要准备的服务器及架构

     192.168.4.51    redis服务器    redisA    redis    是    启用集群功能 不需要设置连接密码 使用6351端口
        192.168.4.52    redis服务器    redisB    redis    是    启用集群功能 不需要设置连接密码 使用6352端口
        192.168.4.53    redis服务器    redisC    redis    是    启用集群功能 不需要设置连接密码 使用6353端口
        192.168.4.54    redis服务器    redisD    redis    是    启用集群功能 不需要设置连接密码 使用6354端口
        192.168.4.55    redis服务器    redisE    redis    是    启用集群功能 不需要设置连接密码 使用6355端口
        192.168.4.56    redis服务器    redisF    redis    是    启用集群功能 不需要设置连接密码 使用6356端口
        192.168.4.57    redis集群管理主机    MGM57    无    无    创建redis-trib.rb脚本(也可用77主机做管理主机)
                            
        192.168.4.66    pxc集群主机    host66    mysql-5.7.17    是    无
        192.168.4.10    pxc集群主机    pxc10    PXC集群软件    否    无
        192.168.4.88    pxc集群主机    pxc88    PXC集群软件    否    无
                            
        192.168.4.99    LB集群调度器    haproxy99    haproxy软件    否    如果硬件配置低,可以在77主机配置
        192.168.4.98    LB集群备用调度器    haproxy98    haproxy软件    否    如果硬件配置低,可以在30主机配置

     未改善完待续........

  • 相关阅读:
    41.用c++编写程序:从键盘上任意输20个1-99之间的整数,分别统计其个位数0-9的数字各有多少
    【编程规范整理】
    CI/CD----jenkins+gitlab+django(内网)
    tomcat访问日志
    Django + celery +redis使用
    CI/CD----jenkins安装配置
    linux 批量删除进程
    django数据查询之聚合查询和分组查询
    django middleware介绍
    git初始化命令行指引
  • 原文地址:https://www.cnblogs.com/ahaocloud/p/14747319.html
Copyright © 2020-2023  润新知