项目概述、部署缓存服务、数据迁移(PXC)、部署集群
- 数据迁移(新知识)
- 部署集群
- 部署内存存储集群
- 数据迁移
在网站业务不停止的情况下复制数据到新的存储结构pxc集群里
PXC概述
Percona XtraDB Cluster(简称PXC)
是基于Galera的MySQL高可用集群解决方案
Galera Cluster是Codership公司开发的一套免费开源的高可用方案
PXC集群主要由两部分组成:
Percona Server with XtraDB
Write Set Replication patches(同步、多主复制插件)
官网http://galeracluster.com
PXC特点
数据强一致性、无同步延迟
没有主从切换操作,无需使用虚拟IP
支持InnoDB存储引擎
多线程复制
部署使用简单
支持节点自动加入,无需手动拷贝数据
相关端口
端 口 |
说 明 |
3306 |
数据库服务端口 |
4444 |
SST 端口 |
4567 |
集群通信端口 |
4568 |
IST 端口 |
SST |
State Snapshot Transfer 全量同步 |
IST |
Incremental State Transfer 增量同步 |
配置第1台PXC服务器(192.168.4.66)
1)停止mysqld服务、卸载mysqld服务软件
[root@pxc66 ~]# systemctl stop mysqld
[root@pxc66 ~]# 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
2)安装PXC软件
[root@pxcnode66 ~]# cd PXC //进软件目录
#安装依赖
[root@pxc66 PXC]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@pxc66 PXC]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm [root@pxc66 PXC]#qpress-1.1-14.11.x86_64.rpm
[root@pxc66 PXC]# yum -y install qpress-1.1-14.11.x86_64.rpm
//解压PXC软件包
[root@pxc66 PXC]#
tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
//安装软件
[root@pxc66 PXC]# yum -y install Percona-XtraDB-Cluster-*.rpm
#修改数据库服务配置文件
[root@pxc66 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=66 //指定server_id
:wq
#修改集群服务配置文件
[root@pxcnode66 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
8: wsrep_cluster_address=gcomm:// 不需要写ip地址
25: wsrep_node_address=192.168.4.66 //指定本机Ip地址
27: wsrep_cluster_name=pxc-cluster //指定集群名称(另外2台的集群名称要于此相同)
30: wsrep_node_name=pxc66 //指定本机主机名
39: wsrep_sst_auth="sstuser:123qqq…A" //数据全量同步授权用户及密码
:wq
启动服务
[root@pxcnode66 PXC]# systemctl start mysql
管理员登录
[root@pxc66 PXC]# mysql -uroot -p123qqq…A
//用户授权
mysql> grant all on *.* to sstuser@"localhost" identified by "123qqq...A";
mysql> exit;
依然是从服务器
[root@pxc66 pxc]# mysql -uroot -p123qqq...A -e 'show slave status \G' | grep -i "yes"
mysql: [Warning] Using a password on the command line interface can be insecure.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[root@pxc66 pxc]#
Pxc集群第一台服务器
[root@pxc66 pxc]# mysql -uroot -p123qqq...A -e 'show status like "%wsrep%"' | grep -i "192.168.4.66"
wsrep_incoming_addresses 192.168.4.66:3306
添加第2台PXC服务器(192.168.4.10)
准备新虚拟机
主机名 |
Ip地址 |
角色 |
pxc10 |
192.168.4.10 |
Pxc集群中第2台服务器 |
配置步骤
1)安装PXC软件
2) 修改配置文件
3) 启动mysql服务
[root@pxc10 ~]# cd PXC //进软件目录
//安装依赖
[root@pxc10 PXC]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@pxc10 PXC]#yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
[root@pxc10 PXC]#yum -y install qpress-1.1-14.11.x86_64.rpm
//解压PXC软件包
[root@pxc10 PXC]#
tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
//安装软件
[root@pxc10 PXC]# yum -y install Percona-XtraDB-Cluster-*.rpm
//修改数据库服务配置文件
[root@pxc10 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=10 //指定server_id
:wq
//修改集群服务配置文件
[root@pxc10 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
8: wsrep_cluster_address=gcomm://192.168.4.66
25: wsrep_node_address=192.168.4.10 //指定本机Ip地址
27: wsrep_cluster_name=pxc-cluster //指定集群名称(另外2台的集群名称要于此相同)
30: wsrep_node_name=pxc10 //指定本机主机名
39: wsrep_sst_auth="sstuser:123qqq…A" //数据全量同步授权用户及密码
:wq
//启动服务
[root@pxcnode10 PXC]# systemctl start mysql
[root@pxcnode10 PXC]# mysql -uroot -p123qqq…A
Mysql> select * from gamedb.user;
配置第3台PXC服务器(192.168.4.88)
准备新虚拟机
主机名 |
Ip地址 |
角色 |
pxc88 |
192.168.4.88 |
Pxc集群中第3台服务器 |
配置步骤
1)安装PXC软件
2) 修改配置文件
3) 启动mysql服务
安装依赖
[root@pxc88 ~]# cd PXC //进软件目录
[root@pxc88 PXC]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@pxc88 PXC]# yum -y install percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm [root@pxc88 PXC]# qpress-1.1-14.11.x86_64.rpm
[root@pxc88 PXC]# tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar //解压PXC软件包
[root@pxc88 PXC]# yum -y install Percona-XtraDB-Cluster-*.rpm //安装软件
修改数据库服务配置文件
[root@pxc88 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=88 //指定server_id
:wq
修改集群服务配置文件
[root@pxc88 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
8: wsrep_cluster_address=gcomm://192.168.4.66
25: wsrep_node_address=192.168.4.88 //指定本机Ip地址
27: wsrep_cluster_name=pxc-cluster //指定集群名称(另外2台的集群名称要于此相同)
30: wsrep_node_name=pxc88 //指定本机主机名
39: wsrep_sst_auth="sstuser:123qqq…A" //数据全量同步授权用户及密码
:wq
启动服务
[root@pxc88 PXC]# systemctl start mysql
[root@pxc88 PXC]# mysql -uroot -p123qqq…A //管理员登录
公共配置(192.168.4.88、192.168.4.10、192.168.4.66)
pxc66~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq
pxc10~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq
pxc88~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq
测试配置
[root@mysql11 ~]# mysql -uroot -p123qqq...A
#访问pxc集群存储数据需要表中有主键字段
mysql> alter table gamedb.user add
id int primary key auto_increment first;
mysql> exit;
[root@web33 ~]# mysql -h192.168.4.66 -uyaya -p123qqq…A gamedb
Mysql> insert into gamedb.user(name) values ("pljA");
Mysql> exit ;
[root@web33 ~]# mysql -h192.168.4.10 -uyaya -p123qqq…A gamedb
Mysql> insert into gamedb.user(name) values ("pljB");
Mysql> exit ;
[root@web33 ~]# mysql -h192.168.4.88 -uyaya -p123qqq…A gamedb
Mysql> insert into gamedb.user(name) values ("pljC");
Mysql> exit ;
#网站服务33 连接集群中的任意一台服务器都可以查看到 插入的 所有数据
[root@web33 ~]# mysql -h192.168.4.66 -uyaya -p123qqq...A -e 'select * from gamedb.user'
[root@web33 ~]# mysql -h192.168.4.10 -uyaya -p123qqq...A -e 'select * from gamedb.user'
[root@web33 ~]# mysql -h192.168.4.88 -uyaya -p123qqq...A -e 'select * from gamedb.user'
部署负载均衡集群(LB)
拓扑结构
准备新虚拟机
主机名 |
Ip地址 |
角色 |
Haproxy99 |
192.168.4.99 |
负载均衡集群调度器 |
配置步骤如下:
步骤一:安装软件: 在haproxy99主机上安装haproxy软件
[root@haproxy99 ~]# yum -y install haproxy
步骤二:修改配置文件
[root@haproxy99 ~]# vim /etc/haproxy/haproxy.cfg
#文件末尾添加如下行
listen mysql_3306 *:3306 //定义haproxy服务名称与端口号
mode tcp //mysql服务 得使用 tcp 协议
option tcpka //使用长连接
balance roundrobin //调度算法
server mysql_01 192.168.4.66:3306 check //第1台数据库服务器
server mysql_02 192.168.4.10:3306 check //第2台数据库服务器
server mysql_03 192.168.4.88:3306 check //第3台数据库服务器
:wq
[root@haproxy99 haproxy]#
步骤三:启动服务
[root@haproxy99 ~]# systemctl start haproxy //启动服务
[root@haproxy99 ~]# netstat -utnlp | grep :3306 //查看端口
tcp6 0 0 :::3306 :::* LISTEN 29768/haproxy
步骤四:测试配置:在网站服务器连接haproxy99主机访问数据
//第1次连接
[root@web33 ~]# mysql -h192.168.4.99 -uyaya -p123qqq…A -e ‘select @@hostname’
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc66 |
+------------+
[root@web33 ~]#
//第2次连接
[root@web33 ~]# mysql -h192.168.4.99 -uyaya -p123qqq…A -e ‘select @@hostname’
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc10 |
+------------+
[root@web33 ~]#
//第3次连接
[root@web33 ~]# mysql -h192.168.4.99 -uyaya -p123qqq…A -e ‘select @@hostname’
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc88 |
+------------+
[root@web33 ~]#
部署高可用集群(HA)
准备新虚拟机
主机名 |
Ip地址 |
角色 |
Haproxy98 |
192.168.4.98 |
备用调度器 |
无 |
192.168.4.100 |
Vip地址 |
拓扑结构
具体配置如下:
1) 安装haproxy 软件
[root@haproxy98 ~]#yum -y install haproxy
2)修改haproxy98主机haproxy.conf文件
说明要和99主机的配置一样,所以直接拷贝haproxy99主机的配置文件也可以
[root@haproxy98 ~]# scp root@192.168.4.99:/etc/haproxy/haproxy.cfg /etc/haproxy/
3)启动haproxy服务
[root@haproxy98 ~]# systemctl start haproxy
[root@haproxy98 ~]# netstat -utnalp | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 918/haproxy
[root@haproxy98 ~]#
4)在haproxy99主机安装keepalived软件
[root@haproxy99 ~]# yum -y install keepalived.x86_64
5)在haproxy98主机安装keepalived软件
[root@haproxy98 ~]# yum -y install keepalived.x86_64
6)修改haproxy99主机的配置文件,
说明99主机做主调度器 优先级要比98高
#删除文件中不相关的配置
[root@haproxy99 ~]# sed -i '36,$d' /etc/keepalived/keepalived.conf
[root@haproxy99 ~]# vim /etc/keepalived/keepalived.conf
.....
......
vrrp_iptables
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100
}
}
:wq
7)修改haproxy98主机的配置文件,说明98主机做备用调度器 优先级要比99低
[root@haproxy98 ~]# scp root@192.168.4.99:/etc/keepalived/keepalived.conf /etc/keepalived/
[root@haproxy98 ~]# vim /etc/keepalived/keepalived.conf
....
state BACKUP
....
priority 100
:wq
8)在haproxy99主机启动keepalived服务
[root@haproxy99 ~]# systemctl start keepalived
9)在haproxy98主机启动keepalived服务
[root@haproxy98 ~]# systemctl start keepalived
测试配置
1)客户端连接vip地址,访问数据库服务
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc10 |
+------------+
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc88 |
+------------+
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
Pxc66
2)测试高可用
#把99主机的keepalived 服务停止模拟 服务器宕机里
[root@haproxy99 ~]# systemctl stop keepalived
#在98 主机可以查看到vip地址 192.168.4.100
[root@haproxy98 ~]# ip addr show | grep 192
inet 192.168.4.98/24 brd 192.168.4.255 scope global noprefixroute eth0
inet 192.168.4.100/32 scope global eth0
[root@haproxy98 ~]#
#客户端一直连接vip地址访问数据库服务
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc66 |
+------------+
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxc10 |
+------------+
[root@web33 ~]# mysql -h192.168.4.100 -uyaya -p123qqq...A -e 'select @@hostname'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
| pxc10 |
+------------+
部署内存存储服务(部署Redis集群)
准备6台新虚拟机
主机名 |
IP地址:端口 |
角色 |
Host51 |
192.168.88.51:6379 |
redis服务器 |
Host52 |
192.168.88.52:6379 |
redis服务器 |
Host53 |
192.168.88.53:6379 |
redis服务器 |
Host54 |
192.168.88.54:6379 |
redis服务器 |
Host55 |
192.168.88.55:6379 |
redis服务器 |
Host56 |
192.168.88.56:6379 |
redis服务器 |
步骤一:部署redis服务器(6台都要配置)
具体操作步骤:
- 安装redis软件
- 初始化配置
- 停止redis服务
- 启用集群功能
- 启动redis 服务
- 查看端口号
#配置Host51主机
[root@redisA ~]# rpm -q gcc || yum -y install gcc //安装编译工具
[root@redisA ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisA ~]# cd redis-4.0.8/ //进源码目录
[root@redisA ~]# make
[root@redisA redis-4.0.8]# make install //安装软件
[root@redisA redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisA redis-4.0.8]# /etc/init.d/redis_6379 stop //停止服务
[root@redisA redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.51
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisA redis-4.0.8]# /etc/init.d/redis_6379 start //启动服务
[root@redisA redis-4.0.8]# netstat -utnlp | grep redis-server //查看端口
tcp 0 0 192.168.4.51:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.51:16379 0.0.0.0:* LISTEN 29720/redis-server //集群端口
#配置Host52主机
[root@redisb ~]# rpm -q gcc || yum -y install gcc //安装编译工具
[root@redisb ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisb ~]# cd redis-4.0.8/ //进源码目录
[root@redisb ~]# make
[root@redisb redis-4.0.8]# make install //安装软件
[root@redisb redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisb redis-4.0.8]# /etc/init.d/redis_6379 stop //停止服务
[root@redisb redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.52
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisb redis-4.0.8]# /etc/init.d/redis_6379 start //启动服务
[root@redisb redis-4.0.8]# netstat -utnlp | grep redis-server //查看端口
tcp 0 0 192.168.4.52:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.52:16379 0.0.0.0:* LISTEN 29720/redis-server //集群端口
#配置Host53主机
[root@redisc ~]# rpm -q gcc || yum -y install gcc //安装编译工具
[root@redisc ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisc ~]# cd redis-4.0.8/ //进源码目录
[root@redisc ~]# make
[root@redisc redis-4.0.8]# make install //安装软件
[root@redisc redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisc redis-4.0.8]# /etc/init.d/redis_6379 stop //停止服务
[root@redisc redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.53
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisc redis-4.0.8]# /etc/init.d/redis_6379 start //启动服务
[root@redisc redis-4.0.8]# netstat -utnlp | grep redis-server //查看端口
tcp 0 0 192.168.4.53:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.53:16379 0.0.0.0:* LISTEN 29720/redis-server //集群端口
#配置Host54主机
[root@redisd ~]# rpm -q gcc || yum -y install gcc //安装编译工具
[root@redisd ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisd ~]# cd redis-4.0.8/ //进源码目录
[root@redisd ~]# make
[root@redisd redis-4.0.8]# make install //安装软件
[root@redisd redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisd redis-4.0.8]# /etc/init.d/redis_6379 stop //停止服务
[root@redisd redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.54
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisd redis-4.0.8]# /etc/init.d/redis_6379 start //启动服务
[root@redisd redis-4.0.8]# netstat -utnlp | grep redis-server //查看端口
tcp 0 0 192.168.4.54:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.54:16379 0.0.0.0:* LISTEN 29720/redis-server //集群端口
#配置Host55主机
[root@redise ~]# rpm -q gcc || yum -y install gcc //安装编译工具
[root@redise ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redise ~]# cd redis-4.0.8/ //进源码目录
[root@redise ~]# make
[root@redise redis-4.0.8]# make install //安装软件
[root@redise redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redise redis-4.0.8]# /etc/init.d/redis_6379 stop //停止服务
[root@redise redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.55
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redise redis-4.0.8]# /etc/init.d/redis_6379 start //启动服务
[root@redise redis-4.0.8]# netstat -utnlp | grep redis-server //查看端口
tcp 0 0 192.168.4.55:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.55:16379 0.0.0.0:* LISTEN 29720/redis-server //集群端口
#配置Host56主机
[root@redisf ~]# rpm -q gcc || yum -y install gcc //安装编译工具
[root@redisf ~]# tar -xf redis-4.0.8.tar.gz //解压
[root@redisf ~]# cd redis-4.0.8/ //进源码目录
[root@redisf ~]# make
[root@redisf redis-4.0.8]# make install //安装软件
[root@redisf redis-4.0.8]# ./utils/install_server.sh //初始化配置 遇到提示敲回车
[root@redisf redis-4.0.8]# /etc/init.d/redis_6379 stop //停止服务
[root@redisf redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.56
93 port 6379
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
[root@redisf redis-4.0.8]# /etc/init.d/redis_6379 start //启动服务
[root@redisf redis-4.0.8]# netstat -utnlp | grep redis-server //查看端口
tcp 0 0 192.168.4.56:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.56:16379 0.0.0.0:* LISTEN 29720/redis-server //集群端口
配置管理主机:
准备新虚拟机
主机名 |
Ip地址 |
角色 |
mgm |
192.168.4.57 |
管理主机 |
具体配置如下
安装依赖软件
[root@mgm ~]# yum -y install ruby rubygems //安装依赖
[root@mgm ~]# gem install redis-3.2.1.gem //安装依赖软件gem程序
创建ruby脚本
[root@mgm ~]# mkdir /root/bin
[root@mgm ~]# tar -xf redis-4.0.8.tar.gz
[root@mgm ~]# cp redis-4.0.8/src/redis-trib.rb /root/bin/ //拷贝脚本
[root@mgm ~]# chmod +x /root/bin/redis-trib.rb //确保脚本有执行权限
创建集群
mgm~]#redis-trib.rb create --replicas 1 \
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
......
Can I set the above configuration? (type 'yes' to accept): yes 同意
....
....
>>> Check slots coverage...
[OK] All 16384 slots covered. 集群创建成功的提示信息
查看集群信息
[root@mgm ~]# redis-trib.rb info 192.168.4.51:6379
192.168.4.51:6379 (8221af1a...) -> 0 keys | 5461 slots | 1 slaves.
192.168.4.52:6379 (fc08343f...) -> 0 keys | 5462 slots | 1 slaves.
192.168.4.53:6379 (94213188...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
配置网站服务器 (web33)
1) 安装软件(提供连接集群的redis.so模块)
[root@web33 ~]# tar -xf 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 //配置
[root@web33 redis-4.3.0]# make //编译
[root@web33 redis-4.3.0]# make install //安装
Installing shared extensions: /usr/lib64/php/modules/ 提示模块存放目录
2)修改php的配置文件(加载模块)
[root@web33 redis-4.3.0]# vim /etc/php.ini
728 extension_dir = "/usr/lib64/php/modules/" #模块目录
730 extension = "redis.so" #模块名
:wq
3)查看支持的模块
[root@web33 redis-4.3.0]# systemctl restart php-fpm //重启php-fpm服务
#查看模块
[root@web33 redis-4.3.0]# php -m | grep redis
redis
[root@web33 redis-4.3.0]#
测试配置
#存储数据的PHP脚本
[root@web33 ~ ]# vim /usr/local/nginx/html/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
echo "save ok";
?>
:wq
#查看数据的PHP脚本
[root@web33 ~]# vim /usr/local/nginx/html/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 的数据
echo "get ok";
?>
:wq
2)访问网站执行脚本(在任意主机访问网站服务器都可以)
[root@web33 ~]# curl http://192.168.4.33/set_data.php
save ok
[root@NFS30 ~]# curl http://192.168.4.33/get_data.php
tarenaA tarenaB tarenaC get ok
3)命令行连接任意一台redis服务器查看数据(在任意主机连接redis服务器都可以)
[root@host52 ~]# redis-cli -c -h 192.168.4.51 -p 6379
192.168.4.51:6379> keys *
1) "j"
192.168.4.51:6379> exit
[root@host52 ~]# redis-cli -c -h 192.168.4.52 -p 6379
192.168.4.52:6379> keys *
1) "k"
2) "name"
192.168.4.52:6379> exit
[root@host52 ~]# redis-cli -c -h 192.168.4.53 -p 6379
192.168.4.53:6379> keys *
1) "i"
192.168.4.53:6379> exit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)