快速搭建redis集群

快速搭建redis集群

一、说明

从单机redis到redis集群,通过一行命令直接完成。

  1. 启动单机redis;
  2. 三节点redis集群(三主);
  3. 六节点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 nodes

echo "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 yes


sleep 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 0

sleep 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 nodes

echo "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 yes


sleep 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 0

sleep 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 nodes

N=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 yes


sleep 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 1

sleep 1
## 检验集群状态
./src/redis-cli -p 7001 cluster nodes
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Docker Compose 可以快速搭建 Redis 集群,实现高可用性和高性能的分布式缓存。下面是搭建 Redis 集群的步骤: 1. 创建一个 redis-cluster 的文件夹,在其中创建多个文件夹,每个文件夹代表一个 Redis 节点,例如 redis6479、redis6480 等。 2. 在每个节点文件夹中创建 docker-compose.yml 文件,文件内容如下: version: '3.3' services: redis: image: redis command: redis-server --appendonly yes ports: - "6379" volumes: - ./data:/data networks: - redis-cluster networks: redis-cluster: driver: bridge 3. 在每个节点文件夹中创建 redis.conf 文件,文件内容如下: port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes 4. 在 redis-cluster 文件夹中创建 docker-compose.yml 文件,文件内容如下: version: '3.3' services: redis6479: network_mode: 'host' image: redis container_name: redis6479 restart: always logging: driver: 'json-file' options: max-size: '5g' volumes: - ./data:/data - ./redis.conf:/usr/local/etc/redis/redis.conf - ./logs:/logs command: redis-server /usr/local/etc/redis/redis.conf redis6480: network_mode: 'host' image: redis container_name: redis6480 restart: always logging: driver: 'json-file' options: max-size: '5g' volumes: - ./data:/data - ./redis.conf:/usr/local/etc/redis/redis.conf - ./logs:/logs command: redis-server /usr/local/etc/redis/redis.conf 5. 在 redis-cluster 文件夹中运行 docker-compose up 命令启动 Redis 集群。 相关问题: 1. Docker Compose 是什么? 2. Redis 集群有哪些优点? 3. 如何使用 Docker Compose 部署其他应用?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值