Redis集群配置

创建集群配置

  1. redis版本:6.2.6
  2. 以6个redis,3主3从为例。

准备基础的redis配置

创建目录/opt/rediscluster,复制基础的redis.conf到此目录,并进行修改

# 关闭AOF功能
appendonly no

创建集群配置文件

创建文件:redis6379.conf,添加内容:

include /opt/rediscluster/redis.conf
pidfile "/var/run/redis_6379.pid"
port 6379
dbfilename "dump6379.rdb"

# 开启集群模式
cluster-enabled yes

# 指定节点文件名称
cluster-config-file nodes-6379.conf

# 指定节点超时时间
cluster-node-timeout 15000

复制 redis6379.conf,分别命名为:

  1. redis6380.conf
  2. redis6381.conf
  3. redis6389.conf
  4. redis6390.conf
  5. redis6391.conf
    然后对各个文件中的数字部分进行修改,将数字修改为与文件名中的数字相同即可。

例如:redis6380.conf,修改如下:

include /opt/rediscluster/redis.conf

# 修改 6379-> 6380
pidfile "/var/run/redis_6380.pid"

# 修改 6379-> 6380
port 6380

# 修改 6379-> 6380
dbfilename "dump6380.rdb"

# 开启集群模式
cluster-enabled yes

# 指定节点文件名称
# 修改 6379-> 6380
cluster-config-file nodes-6380.conf

# 指定节点超时时间
cluster-node-timeout 15000

其他配置文件同理。

开启集群

启动6个redis-server

redis-server /opt/rediscluster/redis6379.conf
redis-server /opt/rediscluster/redis6380.conf
redis-server /opt/rediscluster/redis6381.conf
redis-server /opt/rediscluster/redis6389.conf
redis-server /opt/rediscluster/redis6390.conf
redis-server /opt/rediscluster/redis6391.conf

启动后,查看当前目录,确认已经生成指定的dump.rdb和nodes.conf文件.

批量关闭redis-server

ps -ef | grep -v grep | grep redis |  awk -F' ' '{print $2}' | xargs kill -9

创建集群

进入redis安装目录的src目录下,执行:

redis-cli --cluster create --cluster-replicas 1 192.168.10.102:6379 192.168.10.102:6380 192.168.10.102:6381 192.168.10.102:6389 192.168.10.102:6390 192.168.10.102:6391
  1. –cluster create: 创建集群

  2. –cluster-relicas: 集群副本数。 这里是1,是1主机1从机的模式,如果设置为2(即:2台从机)会失败。因为集群中至少要有3个主机,所以设置2台从机时,至少需要9个节点才可以。

  3. 最后的参数中列出全部的redis主机IP地址和端口号。

执行后,系统提示:

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383

# 6390做为6379的从机
Adding replica 192.168.10.102:6390 to 192.168.10.102:6379

# 6391做为6380的从机
Adding replica 192.168.10.102:6391 to 192.168.10.102:6380

# 6389做为6381的从机
Adding replica 192.168.10.102:6389 to 192.168.10.102:6381
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 0e5eb18533395661e35ac4ebd5298f364e50ad04 192.168.10.102:6379
   slots:[0-5460] (5461 slots) master
M: 9eda6134015f3b415df60e813613a7cf14cdd2df 192.168.10.102:6380
   slots:[5461-10922] (5462 slots) master
M: 505b4fd96d38c68befe839257622cdcec1af35ca 192.168.10.102:6381
   slots:[10923-16383] (5461 slots) master
S: 7d919f337875f7bafcddd3c79a8ae1510202d39d 192.168.10.102:6389
   replicates 505b4fd96d38c68befe839257622cdcec1af35ca
S: b30918baa72b2aa7e564115e738f21145234b84c 192.168.10.102:6390
   replicates 0e5eb18533395661e35ac4ebd5298f364e50ad04
S: a6f714fa624e02a72374f235d5562fc022b143e2 192.168.10.102:6391
   replicates 9eda6134015f3b415df60e813613a7cf14cdd2df
Can I set the above configuration? (type 'yes' to accept): 

输入"yes"确认即可。

访问集群

redis-cli -c -p 6379

1: -c : 集群模式
2:-p : 集群中任意一个redis服务的端口号

登录集群后,可使用:cluster nodes 命令查看集群状态,查询结果如下:

# 6390是slave,对应的master是6379
b30918baa72b2aa7e564115e738f21145234b84c 192.168.10.102:6390@16390 slave 0e5eb18533395661e35ac4ebd5298f364e50ad04 0 1640854465249 1 connected

# 6391是slave,对应的master是6380
a6f714fa624e02a72374f235d5562fc022b143e2 192.168.10.102:6391@16391 slave 9eda6134015f3b415df60e813613a7cf14cdd2df 0 1640854465000 2 connected

# master,这是当前登录到的redis,有myself标示, 0-5460是slot编号
0e5eb18533395661e35ac4ebd5298f364e50ad04 192.168.10.102:6379@16379 myself,master - 0 1640854462000 1 connected 0-5460

# master, 5461-10922是slot编号
9eda6134015f3b415df60e813613a7cf14cdd2df 192.168.10.102:6380@16380 master - 0 1640854467291 2 connected 5461-10922

# 6389是slave,对应的master是6381
7d919f337875f7bafcddd3c79a8ae1510202d39d 192.168.10.102:6389@16389 slave 505b4fd96d38c68befe839257622cdcec1af35ca 0 1640854463201 3 connected

# master, 10923-16383是slot编号
505b4fd96d38c68befe839257622cdcec1af35ca 192.168.10.102:6381@16381 master - 0 1640854466271 3 connected 10923-16383
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值