网站建设之数据信息的保密性,舆情分析报告范文,app推广接单,空间商网站一、redis集群环境准备
1、部署Redis集群的目的#xff1a;
多台服务器一起提供数据存储服务#xff1b; 实现数据的分布式存储#xff1b; 可以实现服务的高可用#xff1b; 可用实现数据自动备份#xff1b;
2、服务器IP地址及端口#xff1a;
主机名 IP地…一、redis集群环境准备
1、部署Redis集群的目的
多台服务器一起提供数据存储服务 实现数据的分布式存储 可以实现服务的高可用 可用实现数据自动备份
2、服务器IP地址及端口
主机名 IP地址 端口
redisA 192.168.4.61 6379
redisB 192.168.4.62 6379
redisC 192.168.4.63 6379
redisD 192.168.4.64 6379
redisE 192.168.4.65 6379
redisF 192.168.4.66 6379
mgm68 192.168.4.68 无redisA、B、C、D、E、F安装redis服务即可3、redisA修改监控地址和启用redis集群相关功能
[rootredisA ~]# /etc/init.d/redis_6379 stop4、启用redis集群相关功能
[rootredisA ~]# vim /etc/redis/6379.conf
70 bind 192.168.4.61 #修改监控地址
815 cluster-enabled yes #取消注释启用集群功能
823 cluster-config-file nodes-6379.conf #取消注释存储集群信息相关文件
829 cluster-node-timeout 5000 #设置集群通信的超时时间(5000秒)
[rootredisA ~]# /etc/init.d/redis_6379 start
[rootredisA ~]# ss -ntulp | grep redis5、连接redis服务查看集群信息
[rootredisA ~]# redis-cli -h 192.168.4.61 -p 63796、做redis集群时要保证所有的节点的数据为空flushall(清空所有数据)
192.168.4.61:6379 keys *
192.168.4.61:6379 cluster info #查看集群的相关信息
cluster_state:fail #集群状态,失败7、redisB、C、D、E、F相同操作只是监听的地址换成各自本机的地址
二、创建redis集群
配置管理主机 部署 ruby 脚本运行环境 创建管理集群脚本 redis-trib.rb
1、部署ruby 脚本运行环境在mgm68上操作
# gem命令用于安装ruby脚本连接redis服务的软件
[rootmgm68 ~]# yum -y install ruby rubygems
[rootmgm68 ~]# which gem #查看gem命令是否存在
[rootmgm68 ~]# gem install redis-3.2.1.gem 此软件用于ruby脚本连接redis服务
[rootmgm68 ~]# ls redis-4.0.8/src/*.rb #在redis源码包目录下找到管理redis集群脚本
redis-4.0.8/src/redis-trib.rb2、便于管理将脚本拷贝到linux命令的默认查找路径下
[rootmgm68 ~]# echo $PATH #查看linux命令的默认查找路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin3、创建目录将管理脚本拷贝到该目录下授予执行权限
[rootmgm68 ~]# mkdir /root/bin
[rootmgm68 ~]# cp /root/redis-4.0.8/src/redis-trib.rb /root/bin/
[rootmgm68 ~]# chmod x /root/bin/redis-trib.rb4、Tab键可以直接以脚本的名称直接运行help 查看使用方法
[rootmgm68 ~]# redis-trib.rb help5、创建集群
#create 创建集群 #redis集群在创建时默认会将集群列表中的前3台服务器配置成主服务器剩下的服务器才会被配置成从服务器 #–replicas 1 指给每一台主服务器分配1台从服务器需要6台服务器 #–replicas 2 指给每一台主服务器分配2台从服务器需要9台服务器 #–replicas 3 指给每一台主服务器分配3台从服务器需要12台服务器 #最后用IP地址和端口号指定redis集群的列表前三台默认为主服务器
[rootmgm68 ~]# redis-trib.rb create --replicas 1 192.168.4.61:6379 192.168.4.62:6379 192.168.4.63:6379 192.168.4.64:6379 192.168.4.65:6379 192.168.4.66:6379Creating cluster
Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.4.61:6379 #主服务器
192.168.4.62:6379 #主服务器
192.168.4.63:6379 #主服务器#### 192.168.4.65 为 192.168.4.61的从服务器
Adding replica 192.168.4.65:6379 to 192.168.4.61:6379#### 192.168.4.66 为 192.168.4.62的从服务器
Adding replica 192.168.4.66:6379 to 192.168.4.62:6379#### 192.168.4.64 为 192.168.4.63的从服务器
Adding replica 192.168.4.64:6379 to 192.168.4.63:6379#### M 指的是主服务器(占用hash槽)
#### S 指的是从服务器(不占用hash槽,从主服务器同步数据)
M: c1198049c748cd11daff4a2477bd9dcdb3358fba 192.168.4.61:6379slots:0-5460 (5461 slots) master
M: 1417e06b26368b5e465fad155ad8a5520a937402 192.168.4.62:6379slots:5461-10922 (5462 slots) master
M: 4515ec026b1fba677cc13f0d8f72d18afde8b6b8 192.168.4.63:6379slots:10923-16383 (5461 slots) master
S: eb6558d188e64bb36016390030657f0eaa34f2cb 192.168.4.64:6379replicates 4515ec026b1fba677cc13f0d8f72d18afde8b6b8
S: 8a527e4080f47e5172715ef8cba58321534a125c 192.168.4.65:6379replicates c1198049c748cd11daff4a2477bd9dcdb3358fba
S: bbe8589f4a41adfd24ccfaae3a4fe27d5b5c4b53 192.168.4.66:6379replicates 1417e06b26368b5e465fad155ad8a5520a937402###########输入 yes,确认配置
Can I set the above configuration? (type yes to accept): yes Nodes configuration updatedAssign a different config epoch to each nodeSending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....Performing Cluster Check (using node 192.168.4.61:6379)
M: c1198049c748cd11daff4a2477bd9dcdb3358fba 192.168.4.61:6379slots:0-5460 (5461 slots) master1 additional replica(s)
S: bbe8589f4a41adfd24ccfaae3a4fe27d5b5c4b53 192.168.4.66:6379slots: (0 slots) slavereplicates 1417e06b26368b5e465fad155ad8a5520a937402
S: eb6558d188e64bb36016390030657f0eaa34f2cb 192.168.4.64:6379slots: (0 slots) slavereplicates 4515ec026b1fba677cc13f0d8f72d18afde8b6b8
S: 8a527e4080f47e5172715ef8cba58321534a125c 192.168.4.65:6379slots: (0 slots) slavereplicates c1198049c748cd11daff4a2477bd9dcdb3358fba
M: 4515ec026b1fba677cc13f0d8f72d18afde8b6b8 192.168.4.63:6379slots:10923-16383 (5461 slots) master1 additional replica(s)
M: 1417e06b26368b5e465fad155ad8a5520a937402 192.168.4.62:6379slots:5461-10922 (5462 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.Check for open slots...Check slots coverage...[OK] All 16384 slots covered. #所有的slots(槽)分配完成6、查看集群信息选择查看任何节点均可结果相同
[rootmgm68 ~]# redis-trib.rb info 192.168.4.65:6379
192.168.4.61:6379 (c1198049...) - 0 keys | 5461 slots | 1 slaves.
192.168.4.63:6379 (4515ec02...) - 0 keys | 5461 slots | 1 slaves.
192.168.4.62:6379 (1417e06b...) - 0 keys | 5462 slots | 1 slaves.
主服务器地址和端口(ID值) —— 存储变量的个数 | 占用槽的个数 | 从服务器个数7、check 查看集群的详细信息M 指的是主服务器(占用hash槽) S 指的是从服务器(不占用hash槽,从主服务器同步数据)最后指定主服务器的ID值
[rootmgm68 ~]# redis-trib.rb check 192.168.4.65:6379redis服务器本机上查看集群信息在redisA上操作
[rootredisA ~]# cat /var/lib/redis/6379/nodes-6379.conf
[rootredisA ~]# redis-cli -h 192.168.4.61 -p 6379
192.168.4.61:6379 cluster info #查看集群的状态信息
cluster_state:ok #集群状态OK
cluster_slots_assigned:16384
...
cluster_known_nodes:6 #集群中有6台服务器
cluster_size:3 #集群中有3台主服务器
...
192.168.4.61:6379 cluster nodes #查看所有节点的信息
#节点在集群中的ID值(唯一的) ID对应节点的IP地址端口号及集群端口号 myself为当前访问的节点master为主服务器slave指从服务器 .......8、vpc50客户端访问集群存取数据
客户端通过-c 访问redis集群访问任何一个节点都可以
[rootvpc50 ~]# redis-cli -c -h 192.168.4.63 -p 6379##redis集群中存入数据给数据分配槽编号为5798
##根据槽编号所在的位置将数据存入到4.62主机上切换到4.62主机中
192.168.4.63:6379 set name plj
- Redirected to slot [5798] located at 192.168.4.62:6379
192.168.4.62:6379 keys *
1) name查看4.62主机的从服务器信息到从服务器4.66本机上验证数据是否同步
192.168.4.62:6379 info replication
# Replication
role:master #4.62为主服务器
connected_slaves:1 #4.62的从服务器为4.66
slave0:ip192.168.4.66,port6379,stateonline,offset2813,lag1##redis集群中继续存入数据给数据分配槽编号为741
##根据槽编号所在的位置将数据存入到4.61主机上切换到4.61主机中
192.168.4.62:6379 set age 19
- Redirected to slot [741] located at 192.168.4.61:6379##查看4.61主机的从服务器信息到从服务器4.65本机上验证数据是否同步
192.168.4.61:6379 info replication
# Replication
role:master #4.61为主服务器
connected_slaves:1 #4.61的从服务器为4.65
slave0:ip192.168.4.65,port6379,stateonline,offset3777,lag0
.....
##查看当前库下的所有变量可以看到数据
192.168.4.61:6379 keys *##redis集群中继续存入数据给数据分配槽编号为8455
##根据槽编号所在的位置将数据存入到4.62主机上切换到4.62主机中
192.168.4.61:6379 set school tarena
- Redirected to slot [8455] located at 192.168.4.62:6379
edis集群中继续存入数据,继续存储在4.62主机上
192.168.4.62:6379 set class nsd2020#查看4.62主机上的所有变量
192.168.4.62:6379 keys *
1) school
2) class
3) name9、redis集群数据存储
#1》redis集群在部署完成后每个 master主机 都被分配了一批不同编号的槽 #2》存储数据时会根据算法为数据分配不同编号的槽 #3》根据槽编号所在的位置将数据存储在相应的master主机上 #4》master主机对应的从服务器也会同步主服务器中的数据
10、-c 客户端从集群中读取数据在vpc50上
[rootredis ~]# redis-cli -c -h 192.168.4.63 -p 6379
192.168.4.62:6379 keys *
192.168.4.62:6379 get name #从本机中获取name变量的值
192.168.4.62:6379 get age #根据槽的编号741从4.61的主机上获取age变量的值
- Redirected to slot [741] located at 192.168.4.61:6379
19