集群 就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。
集群的作用:
集群(cluster)的搭建
这一节我主要记录如何搭建一个redis的集群,集群与哨兵模式不同,哨兵模式是一个master多个slave外加多个哨兵。集群模式是多个master和多个slave。下面我就来搭建redis集群。
这个集群中有6个节点,3主3从,
master1:118.190.156.123:6379
master2:118.190.156.123:6380
master3:118.190.156.123:6381
slave1: 118.190.156.123:16379
slave2: 118.190.156.123:16380
slave3: 118.190.156.123:16381
master1配置文件:
port 6379
daemonize yes
bind 0.0.0.0
logfile "redis-6379.log"
dir /an-dev/redis-4.0.14/data
dbfilename dump-6379.rdb
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfsync always
appendfilename appendonly-6379.aof
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 10000
master2配置文件:
port 6380
daemonize yes
bind 0.0.0.0
logfile "redis-6380.log"
dir /an-dev/redis-4.0.14/data
dbfilename dump-6380.rdb
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfsync always
appendfilename appendonly-6380.aof
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 10000
master3配置文件:
port 6381
daemonize yes
bind 0.0.0.0
logfile "redis-6381.log"
dir /an-dev/redis-4.0.14/data
dbfilename dump-6381.rdb
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfsync always
appendfilename appendonly-6381.aof
cluster-enabled yes
cluster-config-file nodes-6381.conf
cluster-node-timeout 10000
slave1配置文件:
port 6382
daemonize yes
bind 0.0.0.0
logfile "redis-6382.log"
dir /an-dev/redis-4.0.14/data
dbfilename dump-6382.rdb
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfsync always
appendfilename appendonly-6382.aof
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 10000
slave2配置文件:
port 6383
daemonize yes
bind 0.0.0.0
logfile "redis-6383.log"
dir /an-dev/redis-4.0.14/data
dbfilename dump-6383.rdb
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfsync always
appendfilename appendonly-6383.aof
cluster-enabled yes
cluster-config-file nodes-6383.conf
cluster-node-timeout 10000
slave3配置文件:
port 6384
daemonize yes
bind 0.0.0.0
logfile "redis-6384.log"
dir /an-dev/redis-4.0.14/data
dbfilename dump-6384.rdb
rdbcompression yes
rdbchecksum yes
appendonly yes
appendfsync always
appendfilename appendonly-6384.aof
cluster-enabled yes
cluster-config-file nodes-6384.conf
cluster-node-timeout 10000
启动集群
依次使用各自的配置文件启动服务器
redis-server conf/redis-6379.conf
...
创建集群之前要先安装ruby和gem。
apt-get install ruby2.3
apt-get install gem
gem install redis
创建集群
➜ redis-4.0.14 ./src/redis-trib.rb create --replicas 1 118.190.156.125:6379 118.190.156.125:6380 118.190.156.125:6381 118.190.156.125:6382 118.190.156.125:6383 118.190.156.125:6384
--replicas
指定集群内部结构,
1
说的是一个master后面1
个slave
可以看到控制台打印的信息:前3个是master,后3个是salve
集群创建启动完成。
我现在使用-c参数说明我使用的是集群,存放数据的时候,内部会先计算要存的数据要存放在哪里,会重定向。