linux搭建redis集群(cluster)
linux安装redis 这里搭建的是三主三从的环
若计算机不支持同时开启6台linux虚拟机可以把一些redis服务器写在一台上(多个配置文件)一样启动即可
1.创建/myredis/cluster目录
mkdir -p /myredis/cluster
2.切换到/myredis/cluster目录
cd /myredis/cluster/
这里我用的是6台虚拟机(6台机器的端口分别是6381,6382,6383,6384,6385,6386)
3.编辑reids集群的配置文件(这里以6385为例,其他和6385一样改端口)
vim /myredis/cluster/redisCluster6385.conf
特别要注意一下几点!!!(要与自己的对应上)
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
4.启动redis服务(6台redis服务都启动)
redis-server redisCluster6385.conf
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
redis集群搭建成功!
6.登录redis客户端
redis-cli -a 123456 -p 6383 -c
7.查看当前登录的redis主机信息
info replication
8.如果为master则可以写入读取,否则只能读不能写
redis集群是采用哈希槽分区所以每台redis服务器负责一些哈希槽位,在设置值时若key通过hash算法算出的哈希槽位不在本机就会将这条数据路由到对应的redis主机上
9.然后在任意一台redis从机上查看
10.查看主从关系
可以看出192.168.10.130是master,192.168.10.1是他的slave
11.当redis192.168.10.130关闭redis服务后
redis集群发现192.168.10.130这台master下线之后,马上让他的从机192.168.10.1上位充当新的master
12.当192.168.10.130回来之后
发现192.168.10.130就变成192.168.10.1的从机了