-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathredis集群搭建
106 lines (92 loc) · 4.07 KB
/
redis集群搭建
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
## 单
```Bash
mkdir /datas/redis-data
sudo docker create --name redis-node1 --net host -v /datas/redis-data/node1:/data redis:5.0.12 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 7001
sudo docker create --name redis-node2 --net host -v /datas/redis-data/node2:/data redis:5.0.12 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 7002
sudo docker create --name redis-node3 --net host -v /datas/redis-data/node3:/data redis:5.0.12 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 7003
sudo docker start redis-node1 redis-node2 redis-node3
sudo docker exec -it redis-node1 /bin/bash
```
```
redis-cli --cluster create 公网ip:7001 公网ip:7002 公网ip:7003 --cluster-replicas 0
#yes
```
## 主从集群
```
mkdir /datas/redis-data
sudo docker create --name redis-7001 --net host -v /datas/redis-data/7001:/data redis:6.2.4 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 7001
sudo docker create --name redis-7002 --net host -v /datas/redis-data/7002:/data redis:6.2.4 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 7002
sudo docker create --name redis-7003 --net host -v /datas/redis-data/7003:/data redis:6.2.4 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 7003
sudo docker create --name redis-7004 --net host -v /datas/redis-data/7004:/data redis:6.2.4 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 7004
sudo docker create --name redis-7005 --net host -v /datas/redis-data/7005:/data redis:6.2.4 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 7005
sudo docker create --name redis-7006 --net host -v /datas/redis-data/7006:/data redis:6.2.4 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 7006
#--cluster-enabled:是否启动集群,选值:yes 、no
#--cluster-config-file 配置文件.conf :指定节点信息,自动生成
#--cluster-node-timeout 毫秒值: 配置节点连接超时时间
#--appendonly:是否开启持久化,选值:yes、no
sudo docker start redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006
sudo docker exec -it redis-7001 /bin/bash
```
```
redis-cli --cluster create 公网ip:7001 公网ip:7002 公网ip:7003 公网ip:7004 公网ip:7005 公网ip:7006 --cluster-replicas 1
```
## 外网可访问:
```
mkdir /datas/redis-data;cd /datas/redis-data
```
```
vim redis-cluster2.tmpl
```
```
##设置外部网络连接redis服务,默认是yes,即开启。开启protected-mode保护模式,需配置bind ip或者设置访问密码,关闭protected-mode模式,此时外部网络可以直接访问
protected-mode no
##节点端口
port ${PORT}
##指定redis是否要用守护线程的方式启动,默认no
daemonize no
##持久化模式
appendonly yes
##cluster集群模式
cluster-enabled yes
##集群配置名
cluster-config-file nodes.conf
##超时时间
cluster-node-timeout 15000
##实际为各节点网卡分配ip
cluster-announce-ip 公网ip
##节点映射端口
cluster-announce-port ${PORT}
##节点总线端
cluster-announce-bus-port 1${PORT}
```
```
vim createDocker.sh
```
```
for port in `seq 7001 7006`; do
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
-v /datas/redis-data/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /datas/redis-data/${port}/data:/data --name redis-${port} --net redis-net -d redis:6.2.4 redis-server /usr/local/etc/redis/redis.conf;
done
```
```
vim createRedisCluster2.sh
```
```
for port in `seq 7001 7006`; do \
base=6999 \
&& ip=$[port-base] \
&& mkdir -p ${port}/conf \
&& PORT=${port} TEMP=${ip} envsubst < redis-cluster2.tmpl > ${port}/conf/redis.conf \
&& mkdir -p ${port}/data;\
done
```
```
sudo docker network create redis-net
sudo bash createRedisCluster2.sh
sudo bash createDocker.sh
sudo docker exec -it redis-7001 /bin/bash
```
```
redis-cli --cluster create 公网ip:7001 公网ip:7002 公网ip:7003 公网ip:7004 公网ip:7005 公网ip:7006 --cluster-replicas 1
```