5 Redis集群部署
5.1 部署环境
boco201,192.168.100.201,CentOS8
boco202,192.168.100.201,CentOS8
boco203,192.168.100.201,CentOS8
5.2 软件安装
1、软件下载
$ wget https://download.redis.io/releases/redis-6.0.9.tar.gz
$ tar -zxvf redis-6.0.9.tar.gz -C /opt
$ cd redis-6.0.9
$ make【容易掉坑】
编译出错,安装,yum install gcc automake autoconf libtool make
再编译出错,执行,make MALLOC=libc
2、前台运行
$ src/redis-server
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
3、后台运行
vi redis.conf
daemonize yes
redis-server $REDIS_HOME/redis.conf
4、添加环境变量
vi /etc/profile
export REDIS_HOME=/opt/redis-6.0.9
export PATH=$PATH:$REDIS_HOME/src
5、服务停止
redis-cli shutdown
5.3 集群配置
1、修改配置文件redis.conf
daemonize yes
port 7001【3台服务分别为7001/7002/7003】
logfile /data/redis/redis.log
cluster-enabled yes
cluster-config-file nodes-7001.conf【3台服务分别为7001/7002/7003】
cluster-node-timeout 15000
appendonly yes
bind 127.0.0.1 192.168.100.201【127的地址要保留,3台服务器分别为201/202/203】
2、集群配置【有3台虚拟机不需要做如下配置】
最小集群模式需要三个master实例,一般建议起六个实例,即三主三从。本例我们创建3个以端口号命名的目录存放实例的配置文件和其他信息。
mkdir cluster-test
cd cluster-test
mkdir 7001 7002 7003
在对应端口号的目录中创建redis.conf的文件,配置文件的内容可参考上述的集群模式配置。每个配置文件中的端口号port参数改为对应目录的端口号。
[root@boco201 redis-6.0.9]# cp redis.conf ./cluster/7001/
[root@boco201 redis-6.0.9]# scp redis.conf root@boco202:/opt/redis-6.0.9/cluster/7001/
redis.conf 100% 83KB 9.9MB/s 00:00
[root@boco201 redis-6.0.9]# scp redis.conf root@boco203:/opt/redis-6.0.9/cluster/7001/
redis.conf 100% 83KB 5.1MB/s 00:00
[root@boco202 redis-6.0.9]# cp redis.conf ./cluster/7002/
[root@boco202 redis-6.0.9]# scp redis.conf root@boco201:/opt/redis-6.0.9/cluster/7002/
redis.conf 100% 83KB 4.2MB/s 00:00
[root@boco202 redis-6.0.9]# scp redis.conf root@boco203:/opt/redis-6.0.9/cluster/7002/
redis.conf 100% 83KB 2.8MB/s 00:00
[root@boco203 redis-6.0.9]# cp redis.conf ./cluster/7003/
[root@boco203 redis-6.0.9]# scp redis.conf root@boco201:/opt/redis-6.0.9/cluster/7003/
redis.conf 100% 83KB 5.9MB/s 00:00
[root@boco203 redis-6.0.9]# scp redis.conf root@boco202:/opt/redis-6.0.9/cluster/7003/
5.4 集群创建
1、Redis全部实例运行后,需要redis-trib.rb工具来创建集群,运行该工具依赖Ruby环境和gem。
2、安装Ruby
yum -y install ruby rubygems
3、安装gem
[root@boco201 redis]# ruby --version
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]
[root@boco201 redis]# gem install redis
Fetching: redis-4.2.5.gem (100%)
Successfully installed redis-4.2.5
1 gem installed
4、执行redis-trib.rb【已用redis-cli替换】
redis-cli --cluster create 192.168.100.201:7001 192.168.100.202:7002 192.168.100.203:7003
>>> Performing hash slots allocation on 3 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
M: 09613992960d3005b58906f047dc87149078a81e 192.168.100.201:7001
slots:[0-5460] (5461 slots) master
M: 9fdd155d1008fd7a88d5df80a008335d76a6a17b 192.168.100.202:7002
slots:[5461-10922] (5462 slots) master
M: 153422696f31ef39d647ef43112a2816b8a8f2c2 192.168.100.203:7003
slots:[10923-16383] (5461 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
.....
>>> Performing Cluster Check (using node 192.168.100.201:7001)
M: 09613992960d3005b58906f047dc87149078a81e 192.168.100.201:7001
slots:[0-5460] (5461 slots) master
M: 9fdd155d1008fd7a88d5df80a008335d76a6a17b 192.168.100.202:7002
slots:[5461-10922] (5462 slots) master
M: 153422696f31ef39d647ef43112a2816b8a8f2c2 192.168.100.203:7003
slots:[10923-16383] (5461 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
5.5 集群测试
1、连接任意一个节点
[root@boco203 redis-6.0.9]# redis-cli -p 7003 -c
127.0.0.1:7003> set key1 1
-> Redirected to slot [9189] located at 192.168.100.202:7002
OK
192.168.100.202:7002> set key2 2
-> Redirected to slot [4998] located at 192.168.100.201:7001
OK
192.168.100.201:7001> set key3 3
OK
192.168.100.201:7001> set key4 4
-> Redirected to slot [13120] located at 192.168.100.203:7003
OK
192.168.100.203:7003> set key5 5
-> Redirected to slot [9057] located at 192.168.100.202:7002
OK
192.168.100.203:7003> get key1
-> Redirected to slot [9189] located at 192.168.100.202:7002
"1"
192.168.100.202:7002> get key2
-> Redirected to slot [4998] located at 192.168.100.201:7001
"2"
192.168.100.201:7001> get kye3
-> Redirected to slot [13243] located at 192.168.100.203:7003
(nil)
192.168.100.203:7003> get key4
"4"
192.168.100.203:7003> get key5
-> Redirected to slot [9057] located at 192.168.100.202:7002
"5"
2、查看当前集群信息
cluster info
127.0.0.1:7002> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:2
cluster_stats_messages_ping_sent:637
cluster_stats_messages_pong_sent:660
cluster_stats_messages_sent:1297
cluster_stats_messages_ping_received:660
cluster_stats_messages_pong_received:636
cluster_stats_messages_received:1296
3、查看集群里有多少个节点
cluster nodes
127.0.0.1:7002> cluster nodes
9fdd155d1008fd7a88d5df80a008335d76a6a17b 192.168.100.202:7002@17002 myself,master - 0 1607581681000 2 connected 5461-10922
09613992960d3005b58906f047dc87149078a81e 192.168.100.201:7001@17001 master - 0 1607581680940 1 connected 0-5460
153422696f31ef39d647ef43112a2816b8a8f2c2 192.168.100.203:7003@17003 master - 0 1607581681949 3 connected 10923-16383
Redis集群部署记录
最新推荐文章于 2022-10-27 15:54:17 发布