linux搭建redis集群(cluster)

linux安装redis 这里搭建的是三主三从的环

若计算机不支持同时开启6台linux虚拟机可以把一些redis服务器写在一台上(多个配置文件)一样启动即可

1.创建/myredis/cluster目录

mkdir -p /myredis/cluster

Linux redis 服务 重启 linux redis集群重启_redis

2.切换到/myredis/cluster目录

cd /myredis/cluster/

Linux redis 服务 重启 linux redis集群重启_redis_02

这里我用的是6台虚拟机(6台机器的端口分别是6381,6382,6383,6384,6385,6386)

Linux redis 服务 重启 linux redis集群重启_运维_03

3.编辑reids集群的配置文件(这里以6385为例,其他和6385一样改端口)

vim /myredis/cluster/redisCluster6385.conf

Linux redis 服务 重启 linux redis集群重启_运维_04

特别要注意一下几点!!!(要与自己的对应上)

port:端口

requirepass:该redis服务器的密码

masterauth:对应master主机的密码

bind 0.0.0.0
daemonize yes
protected-mode no
port 6385
logfile "/myredis/cluster/cluster6385.log"
pidfile /myredis/cluster6385.pid
dir /myredis/cluster
dbfilename dump6385.rdb
appendonly yes
appendfilename "appendonly6385.aof"
requirepass 123456
masterauth 123456

Linux redis 服务 重启 linux redis集群重启_运维_05

4.启动redis服务(6台redis服务都启动)

redis-server redisCluster6385.conf

Linux redis 服务 重启 linux redis集群重启_redis_06

5.构建主从关系命令

特别注意(对应自己的ip地址和端口)!!!!!

–cluster-replicas 1 表示为每个master创建一个slave节点

redis-cli -a 123456 --cluster create --cluster-replicas 1 192.168.10.128:6381 192.168.10.129:6382 192.168.10.130:6383 192.168.10.1:6384 192.168.10.2:6385 192.168.10.20:6386

Linux redis 服务 重启 linux redis集群重启_Linux redis 服务 重启_07

Linux redis 服务 重启 linux redis集群重启_运维_08

Linux redis 服务 重启 linux redis集群重启_数据库_09

redis集群搭建成功!

6.登录redis客户端

redis-cli -a 123456 -p 6383 -c

Linux redis 服务 重启 linux redis集群重启_数据库_10

7.查看当前登录的redis主机信息

info replication

Linux redis 服务 重启 linux redis集群重启_Linux redis 服务 重启_11

8.如果为master则可以写入读取,否则只能读不能写

Linux redis 服务 重启 linux redis集群重启_redis_12

redis集群是采用哈希槽分区所以每台redis服务器负责一些哈希槽位,在设置值时若key通过hash算法算出的哈希槽位不在本机就会将这条数据路由到对应的redis主机上

9.然后在任意一台redis从机上查看

Linux redis 服务 重启 linux redis集群重启_linux_13


Linux redis 服务 重启 linux redis集群重启_redis_14

10.查看主从关系

可以看出192.168.10.130是master,192.168.10.1是他的slave

Linux redis 服务 重启 linux redis集群重启_数据库_15

11.当redis192.168.10.130关闭redis服务后

Linux redis 服务 重启 linux redis集群重启_redis_16

redis集群发现192.168.10.130这台master下线之后,马上让他的从机192.168.10.1上位充当新的master

Linux redis 服务 重启 linux redis集群重启_redis_17

12.当192.168.10.130回来之后

发现192.168.10.130就变成192.168.10.1的从机了

Linux redis 服务 重启 linux redis集群重启_redis_18