快速搭建redis集群
文章目录
- 快速搭建redis集群
- 一、说明
- 二、安装redis
- 三、快速启动单机redis
- 四、搭建三节点redis集群(三主):全部节点都可以用,集群才可用
- 五、搭建三节点redis集群(三主):一半以上节点可用,就可用
- 六、搭建六节点redis集群(三主三从)
一、说明
从单机redis到redis集群,通过一行命令直接完成。
- 启动单机redis;
- 三节点redis集群(三主);
- 六节点redis集群(三主三从);
redis到配置参数即可以写到配置文件中,也可以放在启动命令后面。下面是快速搭建和启动,因此所有的参数都放在命令后面。
二、安装redis
从官网下载zip包(Install Redis from source):https://redis.io/downloads/
[download 6.2.14](https://download.redis.io/releases/redis-6.2.14.tar.gz).
解压,之后编译安装:
$ tar -zxvf softs/redis-6.2.14.tar.gz -C servers/
$ make && make install
三、快速启动单机redis
先创建两个文件夹:
$ cd redis-6.2.14/
$ mkdir -p {logs,data}
运行启动命令:
注意:logfile
需要写绝对路径。
./src/redis-server --port 6379 --dir /Users/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6379.aof --dbfilename dump-6379.rdb --logfile /Users/Downloads/dev/servers/redis-6.2.14/logs/6379.log --daemonize yes
执行成功,就启动成功了。
四、搭建三节点redis集群(三主):全部节点都可以用,集群才可用
先创建三个文件夹:
$ cd redis-6.2.14/
$ mkdir -p {logs,data,cluster-conf}
然后执行运行脚本:create-redis-cluster-3.sh
。
不需要创建其它的文件
$ cd redis-6.2.14/
$ bash create-redis-cluster-3.sh
脚本内容如下:
## create a local redis cluster for 3 nodesecho "start $N redis-server for 6000-6002..."
echo "6000"echo "6000"
./src/redis-server --port 6000 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6000.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6000.aof --dbfilename dump-6000.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6000.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6000.log --daemonize yes
echo "6001"
./src/redis-server --port 6001 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6001.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6001.aof --dbfilename dump-6001.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6001.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6001.log --daemonize yes
echo "6002"
./src/redis-server --port 6002 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6002.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6002.aof --dbfilename dump-6002.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6002.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6002.log --daemonize yessleep 2
## create a local redis cluster
## 构建集群
echo "create cluster... "
./src/redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 --cluster-replicas 0sleep 1
## 检验集群状态
./src/redis-cli -p 6000 cluster nodes
五、搭建三节点redis集群(三主):一半以上节点可用,就可用
先创建三个文件夹:
$ cd redis-6.2.14/
$ mkdir -p {logs,data,cluster-conf}
然后执行运行脚本:create-redis-cluster-no-full-3.sh
。
不需要创建其它的文件
$ cd redis-6.2.14/
$ bash create-redis-cluster-no-full-3.sh
脚本内容如下:
## create a local redis cluster for 3 nodesecho "start $N redis-server for 6000-6002..."
echo "6000"echo "6000"
./src/redis-server --port 6000 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6000.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6000.aof --dbfilename dump-6000.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6000.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6000.log --cluster-require-full-coverage no --daemonize yes
echo "6001"
./src/redis-server --port 6001 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6001.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6001.aof --dbfilename dump-6001.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6001.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6001.log --cluster-require-full-coverage no --daemonize yes
echo "6002"
./src/redis-server --port 6002 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-6002.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-6002.aof --dbfilename dump-6002.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-6002.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/6002.log --cluster-require-full-coverage no --daemonize yessleep 2
## create a local redis cluster
## 构建集群
echo "create cluster... "
./src/redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 --cluster-replicas 0sleep 1
## 检验集群状态
./src/redis-cli -p 6000 cluster nodes
六、搭建六节点redis集群(三主三从)
先创建三个文件夹:
$ cd redis-6.2.14/
$ mkdir -p {logs,data,cluster-conf}
然后执行运行脚本:create-redis-cluster-6-3m3s.sh
。
不需要创建其它的文件
$ cd redis-6.2.14/
$ bash create-redis-cluster-6-3m3s.sh
脚本内容如下:
## create a local redis cluster for 6 nodesN=6### nohup redis-server --port 7004 --cluster-enabled yes --cluster-config-file nodes-7004.conf --cluster-node-timeout 3000 --appendonly yes --appendfilename appendonly-7004.aof --dbfilename dump-7004.rdb --logfile 7004.log --daemonize yes &## create 6 redis server for 7000-7005
echo "start $N redis-server for 7000-7005..."
echo "7001"
./src/redis-server --port 7001 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7001.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7001.aof --dbfilename dump-7001.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7001.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7001.log --cluster-require-full-coverage no --daemonize yes
echo "7002"
./src/redis-server --port 7002 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7002.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7002.aof --dbfilename dump-7002.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7002.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7002.log --cluster-require-full-coverage no --daemonize yes
echo "7003"
./src/redis-server --port 7003 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7003.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7003.aof --dbfilename dump-7003.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7003.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7003.log --cluster-require-full-coverage no --daemonize yes
echo "7004"
./src/redis-server --port 7004 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7004.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7004.aof --dbfilename dump-7004.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7004.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7004.log --cluster-require-full-coverage no --daemonize yes
echo "7005"
./src/redis-server --port 7005 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7005.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7005.aof --dbfilename dump-7005.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7005.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7005.log --cluster-require-full-coverage no --daemonize yes
echo "7006"
./src/redis-server --port 7006 --cluster-enabled yes --cluster-config-file /Users/lifei/Downloads/dev/servers/redis-6.2.14/cluster-conf/nodes-7006.conf --cluster-node-timeout 3000 --dir /Users/lifei/Downloads/dev/servers/redis-6.2.14/data --appendonly yes --appendfilename appendonly-7000.aof --dbfilename dump-7006.rdb --pidfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/data/redis-7006.pid --logfile /Users/lifei/Downloads/dev/servers/redis-6.2.14/logs/7006.log --cluster-require-full-coverage no --daemonize yessleep 2
## create a local redis cluster
## 构建集群
./src/redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1sleep 1
## 检验集群状态
./src/redis-cli -p 7001 cluster nodes