Redis 3.0.2高可用集群(中)------ Redis-Cluster部署
好,原文再续,书接上一回,上回我介绍了一下Redis的安装,这回我们来配一下集群------Redis ClusterRedis-Cluster安装部署步骤
1. 下载zlib-1.2.8.tar.gz、ruby-2.2.2.tar.gz、rubygems-2.4.8.tgz和redis-3.2.1.gem(ruby安装包比较大、rubygem的文件格式不能上传,所以大家自己想办法,其他两个见附件)
2. 安装:
1) 安装zlib
a) tar –zxvf zlib-1.2.8.tar.gz
b) cd zlib-1.2.8
c) ./configure
d) make
e) make install
2) 安装ruby
a) tar –zxvf ruby-2.2.2.tar.gz
b) cd ruby-2.2.2
c) ./configure -prefix=/usr/local/ruby
d) make
e) make install
f) sudo cp ruby /usr/local/bin
3) 安装rubygems
a) tar –zxvf rubygems-2.4.8.tgz
b) cd rubygems-2.4.8
c) sudo ruby setup.rb
d) sudo cp bin/gem /usr/local/bin
4) 安装ruby-redis-3.2.1.gem插件
a) gem install -l ruby-redis-3.2.1.gem
5) 配置redis-cluster启动脚本
a) cd /%redis_home%/src redis-trib.rb /usr/local/bin/redis-trib
3. 部署
A机10.92.21.17
实例1端口6379
实例2 端口7379
实例3 端口8379
B机10.92.21.18
实例1端口6380
实例2 端口7380
实例3 端口8380
1. A/B机 mkdir /opt/redis
2. cd /opt/redis
3. mkdir 6379/ 7379/ 8379/6380/ 7380/ 8380
4. cd 6379/ 7379/ 8379/6380/ 7380/ 8380
5. cp /%redis_home%/redis_conf 6379.conf/7379.conf/8379.conf
# include /path/to/local.conf
# include /path/to/other.conf
daemonize yes
pidfile /var/run/redis_6379/ 7379/ 8379/6380/ 7380/ 8380.pid
port 6379/ 7379/ 8379/6380/ 7380/ 8380
tcp-backlog 511
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1
# unixsocket /tmp/redis.sock
# unixsocketperm 700
timeout 0
tcp-keepalive 0
loglevelnotice
logfile "/var/log/redis_6379/ 7379/ 8379/6380/ 7380/ 8380.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /opt/redis/6379/ 7379/ 8379/6380/ 7380/ 8380
# slaveof <masterip> <masterport>
# masterauth <master-password>
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
# repl-ping-slave-period 10
# repl-timeout 60
repl-disable-tcp-nodelay no
# repl-backlog-size 1mb
# repl-backlog-ttl 3600
slave-priority 100
# min-slaves-to-write 3
# min-slaves-max-lag 10
# min-slaves-max-lag is set to 10.
# requirepass foobared
# rename-command CONFIG ""
# maxclients 10000
# maxmemory <bytes>
# maxmemory-policy noeviction
# maxmemory-samples 5
appendonly yes
appendfilename "appendonly.aof"
# appendfsync always
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file nodes-6379/ 7379/ 8379/6380/ 7380/ 8380.conf
cluster-node-timeout 5000
# cluster-slave-validity-factor 10
# cluster-migration-barrier 1
# cluster-require-full-coverage yes
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
6. 编写实例启动脚本 stop.sh
killall redis-server
sudo rm /opt/redis/6379(6380)/*.aof
sudo rm /opt/redis/6379(6380)/node*
sudo rm /opt/redis/7379(7380)/*.aof
sudo rm /opt/redis/7379(7380)/node*
sudo rm /opt/redis/8379(8380)/*.aof
sudo rm /opt/redis/8379(8380)/node*
7 编写实例启动脚本 startRedis.sh
redis-server /opt/redis/6379(6380)/6379(6380).conf
redis-server /opt/redis/7379(7380)/7379(7380).conf
redis-server /opt/redis/8379(8380)/8379(8380).conf
8. Chmod 777 -R /opt/redis 对opt/redis目录赋权限
9. 在opt/redis目录执行 stop.sh和startRedis.sh即可进行多个实例的启动
10. redis-trib create --replicas 1 10.92.21.17:6379 10.92.21.17:7379 10.92.21.17:8379 10.92.21.18:6380 10.92.21.18:7380 10.92.21.18:8380
这里有个地方需要注意的,我不确定是不是个bug,如果 redis-trib create在A机上执行,那么把10.92.21.17改成127.0.0.1的同时把A的3个实例同时放到前三位,即redis-trib create --replicas 1 127.0.0.1:6379 127.0.0.1:7379 127.0.0.1:8379 10.92.21.18:6380 10.92.21.18:7380 10.92.21.18:8380的话就会启动不redis-cluster,会一直卡在waiting the cluster join.....
验证
页:
[1]