Get:redis cluster 部署,主备切换,在线扩容,动态增删节点
1.centos7 安装redis cluster
#下载redis压缩包
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
#解压
tar -zxvf redis-4.0.10.tar.gz
#移动redis文件夹到usr/local目录
mv redis-4.0.10 /usr/local/
#编译
make
#编译测试
make test
make出现异常:/bin/sh: cc: command not found
安装:yum -y install gcc
继续make 出现error: jemalloc/jemalloc.h: No such file or directory
解决:make MALLOC=libc
make test 问题:You need tcl 8.5 or newer in order to run the Redis test
解决:yum install tcl
2. 集群部署
#创建集群目录
mkdir cluster-redis
#创建节点文件夹 7006为后续节点扩容备用
mkdir 7000 7001 7002 7003 7004 7005 7006
#每个节点创建redis.conf 如下:
touch redis-7000.conf
-
port
7000
-
bind
127.0.
0.
1
-
daemonize yes
-
protected-mode yes
-
#表示临时存放已完成三次握手的请求的队列的最大长度
-
tcp-backlog
511
-
timeout
0
-
tcp-keepalive
300
-
supervised
no
-
loglevel notice
-
logfile ../cluster-redis/
7000/redis-
7000.log
-
save
900
1
-
save
300
10
-
save
60
10000
-
stop-writes-on-bgsave-error yes
-
rdbcompression yes
-
rdbchecksum yes
-
dbfilename
dump-
7000.rdb
-
dir ./
-
slave-serve-stale-data yes
-
slave-
read-only yes
-
repl-diskless-sync
no
-
repl-diskless-sync-delay
5
-
repl-disable-tcp-nodelay
no
-
slave-priority
100
-
appendonly
no
-
appendfilename
"appendonly-7000.aof"
-
appendfsync everysec
-
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 ../cluster-redis/
7000/nodes-
7000.conf
-
cluster-node-timeout
15000
-
slowlog-
log-slower-than
10000
-
slowlog-max-len
128
-
latency-monitor-threshold
0
-
notify-keyspace-events
""
-
hash-max-ziplist-entries
512
-
hash-max-ziplist-value
64
-
list-max-ziplist-size -
2
-
list-compress-depth
0
-
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
-
aof-rewrite-incremental-fsync yes
注:如果redis单独做缓存,不用配置rdb和aof备份
#启动节点 6个全部启动
#查询redis节点
#安装Ruby (redis集群需要用到ruby命令)
yum -y install ruby rubygems
#安装rvm
curl -L get.rvm.io | bash -s stable
如报错执行: gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
#继续按照rvm
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm
#查看rvm库中已知的ruby版本
rvm list known
#安装ruby
rvm install 2.5.1
#使用新版本
rvm use 2.5.1
#移除旧版本
rvm remove 2.0.0
#查看当前版本
ruby --version
#安装相关依赖
gem install redis
3. 启动集群
[root@localhost src]# ./redis-trib.rb create --replicas 1 127.0.0.1:7000 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
如图:代表启动成功
4. 相关命令操作
4.1 查看集群信息
4.2 集群节点查看
4.3 集群重启:
和单机版启动一样,启动后会自动转换cluster模式
可以写个脚本:不用每次一个个节点启动,可以一次性起所有节点命令