一、注意点
- 每个节点必须开启 2个TCP端口
- redis的服务器端口
- redis集群之间的集群端口,默认使用10000+redis的服务端口,例如服务端口是6379,集群端口使用的就是16379,也可以手动修改
- 版本显示
- 版本>=5.x,直接使用./redis-cli --cluster create 指令构建redis集群
- 版本<5.x,需要安装ruby、rubygems环境,使用 ./redis-trib.rb create 指令构建redis集群
- 集群环境,需要6个redis单机节点,可以部署到6台服务器,也可以根据实际情况进行部署“伪集群”,甚至可以部署到一个节点上。
二、配置文件
具体内容可以根据实际情况修改。
#每个节点的端口号
port 7002
#守护进程
daemonize yes
#绑定当前机器 IP
bind 10.23.71.4
#数据文件存放位置
dir /data/redis-cluster/7002/data/
#pid 9001和port要对应
pidfile /usr/local/redis-cluster/7002/redis_7002.pid
启动集群模式
cluster-enabled yes
#这不是用户可编辑的配置文件,而是Redis群集节点每次发生更改时自动保留群集配置(基本上为状态)的文件,以便能够在启动时重新读取它。
cluster-config-file /usr/local/redis-cluster/7002/nodes7002.conf
#Redis群集节点可以不可用的最长时间,而不会将其视为失败。 如果主节点超过指定的时间不可达,它将由其从属设备进行故障切换。 此参数控制Redis群集中的其他重要事项。
cluster-node-timeout 15000
#开启aof 持久化存储
appendonly yes
#文件名
appendfilename appendonly_7002.aof
#保存地址
dir /data/redis-cluster/7002/data/
#日志
logfile /data/redis-cluster/7002/redis_7002.log
#密码
requirepass 123456
#主节点密码
masterauth 123456
三、步骤
1、安装单机redis(建议使用5.x以上,配置集群一个命令即可)
- 下载redis安装包,http://download.redis.io/releases/redis-5.0.3.tar.gz
- 安装gcc,yum -y install gcc
- 解压redis,cd到解码目录,运行make && make install 命令
- cd /usr/local/bin/,可以看到redis安装的全部命令
2、创建配置文件、进程文件、本地化文件、日志的目录
- 配置文件、进程文件放在 /usr/local/redis-cluster
- 日志文件、本地化文件放在 /data/redis-cluster
3、启动各个节点的redis服务 redis-server /usr/local/redis-cluster/7001/7001.conf &
4、执行创建集群命令:
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.01:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
replicas设置为1
比如6个节点,设置1,6*(1/2)=3个master,6*(1/2)=3个slave;
比如24个节点,设置2,24*(1/3)=8个master,24*(2/3)=16个slave。
5、使用 redis-cli -c -h ip -p 端口,进行连接,运行 cluster info\nodes
集群搭建完成。
四、搭建外网集群
今天需要搭建redis外网集群,虽然这个方式有点脑残,但是免不了某些情况下,需要这么做。
需要注意一下几点:
- 端口开放问题
- 开放redis的端口和总线端口(总线端口就是访问端口+1,例如访问端口是7001,总线端口就是17001)
- 本机也要对自己的外网IP开放这些端口,例如服务器外网IP是 47.23.100.47,那么服务器对待自己的外网 47.23.100.47也要开放,这里我使用的阿里云,在安全组配置即可
- 创建集群的时候,使用外网IP创建