redis 集群配置、启动
want to run redis-server in background nonstop
Creating and using a Redis Cluster
已知信息
- Redis
verison >= 5.0
- 启动 Redis 命令
./src/redis-server
「前端启动」 - 将启动 Redis 方式改为「后端启动」,将 redis.conf 中的
daemonize no
改为daemonize yes
必备知识
- Redis 集群至少需要 3 个节点,因为投票容错机制要求超过半数节点认为某个节点挂了,该节点才是挂了,因此 2 个节点无法构成集群。(两个节点的集群,一个没反应,一个认为第一个挂了,只有 50%,没有超过半数...)
- 要保持集群高可用,需要每个节点都有从节点(备份节点),因此 Redis 集群至少需要 6 台服务器。(非强制)
Redis 集群设定
我们假定 Redis 集群的 3 台节点 port
分别为 7001
, 7002
, 7003
。
具体操作
- 在
redis
目录下创建目录redis_cluster
redis-5.0.3 >> mkdir redis_cluster
- 在
redis_cluster
目录下创建目录7001
,7002
,7003
redis_cluster >> mkdir 7001 7002 7003
- 将
redis
目录下的redis.conf
复制到redis_cluster/[port]/conf
下
redis-5.0.3 >> cp redis.conf redis_cluster/7001/conf/
- 将各个
redis_cluster/[port]/conf/redis.conf
中的以下字段修改
port 7002 # [port]
daemonize yes
cluster-enabled yes
cluster-config-file nodes-7002.conf # [port]
cluster-node-timeout 5000
appendonly yes
- 启动各个节点
redis-5.0.3 >> ./src/redis-server redis_cluster/7003/conf/redis.conf
- 启动 Redis Cluster,使用 --cluster-replicas 意味着从节点数为 1
./src/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003
# ./src/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 --cluster-replicas 1
错误
有可能会出现错误信息
[ERR] Node 127.0.0.1:7000 is not empty ...
解决方法:删除 node-xxx.conf
配置文件,删除 pid 文件,删除各节点 .aof
, .rdb
文件,kill 所有 redis 进程,重启 redis 集群。
网友评论