1.什么是Redis集群?
Redis的集群有两种:
读写分离集群,主从复制。
内置集群,分片。
2.为什么要使用Redis集群?
读写分离集群,解决的是高可用问题。
内置集群,解决的是高扩展和高可用问题。
3.如何搭建Redis集群?
为了保证集群投票,至少需要3个主节点,每个主节点至少需要一个从节点,作为读写分离和热备,总共需要6台服务器。
3.1准备集群节点
复制一个干净的Redis环境的bin文件夹,清理后作为第一个Redis节点
# 进入redis安装目录
cd /usr/local/redis
#新建目录,存放redis集群节点目录
mkdir redis-cluster
# 复制redis
cp -R bin/ redis-cluster/node1
#进入node1目录
cd redis-cluster/node1
# 删除快照和持久化文件(如果有的话)
rm -f dump.rdb & rm -f appendonly.aof
# 删除原来的配置文件(如果该配置文件被修改过,则删除,可选)
#rm -r redis.conf
# 复制新的配置文件(可选)
#cp /root/redis-5.0.5/redis.conf ./
# 修改配置文件
vi redis.conf
3.2集群环境的Redis配置文件
# 不能设置密码,否则集群启动时会连接不上
# Redis服务器可以跨网络访问
bind 0.0.0.0
# 修改端口号
port 7001
# Redis后台启动
daemonize yes
# 开启aof持久化
appendonly yes
#下面的配置是集群相关的(新)
# 开启集群
cluster-enabled yes
# 集群的配置 配置文件首次启动自动生成
cluster-config-file nodes.conf
# 请求超时,默认15000
cluster-node-timeout 5000
cluster-node-timeout:主要为了解决网络抖动造成的影响。
网络抖动:真实世界的机房网络往往并不是风平浪静的,它们经常会发生各种各样的小问题。比如网络抖动就是非常常见的一种现象,突然之间部分连接变得不可访问,然后很快又恢复正常。
为解决这种问题,Redis Cluster 提供了一种选项cluster-node-timeout,表示当某个节点持续 timeout 的时间失联时,才可以认定该节点出现故障,需要进行主从切换。如果没有这个选项