1.Redis的集群
1.1第一种集群方式--主从模式
-
配置主从模式---配从不配主。
模拟: 一台linux系统,启动三台redis服务.依靠端口号:6380主节点 6381从节点 6382从节点
(1)复制三个redis配置文件放入master-slave目录
(2)修改三个文件的配置
- bind 0.0.0.0 -::1 # 关闭保护模式
- protected-mode no
- port 6380 | 6381 | 6382
- dbfilename dump6380.rdb | dump6381.rdb | dump6382.rdb
- appendfilename "appendonly6380.aof"
要修改三次,每次修改为对应的端口值 。
(3)启动三台redis并查看进程
(4)三台客户端访问redis相应的服务器
- redis-cli -p 6380 -h #IP地址
- redis-cli -p 6381 -h #IP地址
- redis-cli -p 6382 -h #IP地址
(5)查看redis的角色
info replication
可以看出三个都是相同的master身份。下面就需要配置一下。
(6)配置主从关系---从节点
slaveof #主节点ip 端口号
这里我将端口号为6380设为主节点,6381和6382设为从节点。只需要在两个从节点运行下面语句即可。
运行完再次查看各个的角色
(7) 往节点添加数据
可以看出只有主节点具备读写功能,从节点只具备读的功能。
1.2第二种集群模式---哨兵模式
上面的主从模式的缺点:----如果主节点宕机后,从节点无法变成主节点,该redis服务就无法执行写操作了。
这里的哨兵有两个作用
-
通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
-
当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。
(1)配置文件在Redis安装目录下有一个sentinel.conf文件
(2)配置完后 开启哨兵模式
redis-sentinel sentinel.conf
(3)主动关闭主进程
可以看出主线程从6382变为6380。
1.3第三种模式---集群模式
哨兵模式的缺点: 它只有一个主节点---如果现在写操作并发高,那么还会导致主节点压力过大。
(1)在安装目录下面新建一个文件夹colony复制配置文件
(2)配置文件
修改配置文件: 都需要改
- bind 0.0.0.0
- port 7001
- daemonize yes
- # 打开aof 持久化
- appendonly yes
- # 开启集群
- cluster-enabled yes
- # 集群的配置文件,该文件自动生成
- cluster-config-file nodes-7001.conf
- # 集群的超时时间
- cluster-node-timeout 5000
(3)启动redis
为6台redis配置槽以及主从关系
redis-cli --cluster create --cluster-replicas 1 192.168.153.128:7001 192.168.153.128:7002 192.168.153.128:7003 192.168.153.128:7004 192.168.153.128:7005 192.168.153.128:7006
测试:
redis-cli -c -h 127.0.0.1 -p 7001
可以看出在任意节点都可以实现读写操作,测试成功。