redis 集群安装(redis-trib.rb)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
redisredis-trib.rb安装集群一、redis安装
1.下载地址:
$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压缩
$ tar xzf redis-3.2.8.tar.gz
3.编译
$ln -s redis-3.2.8 redis
建立软链接,有利于未来升级,是一个比较好的做法
$ cd redis
$ make
编译,有的时候会报错
a、确保安装gcc
b、fatal error: jemalloc/jemalloc.h: No such file or directory 解决办法:make MALLOC=libc
$make install
安装放入到/usr/local/bin
$redis-cli -v
查看redis版本
redis集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群。
操作系统centos7.2-mini版
一、redis安装
略
二、使用redis-trib.rb 安装工具
1、安装ruby
yum install ruby -y
2、安装rubygemredis依赖
wget /downloads/redis-3.3.0.gem
gem install -l redis-3.3.0 gem
cp /{redishome}/scr/redis-trib.rb /usr/local/bin
3、测试
redis-trib.rb
二、准备节点
1、创建文件夹
mkdir /redis-cluster-trib
cd /redis-cluster-trib
mkdir 6379 6380 6381 6382 6383 6384
2、创建并配置redis.conf
分别在6379-6384六个文件夹中创建redis-node.conf文件,并添加配置,配置内容如下redis-6379.conf,每个文件根据对应名修改一下
vim redis-6379.conf
port 6379
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "/redis-cluster-trib/6379/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6379.conf"
vim redis-6380.conf
port 6380
daemonize yes
logfile "6380.log"
dbfilename "dump-6380.rdb"
dir "/redis-cluster-trib/6380/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6380.conf"
vim redis-6381.conf
port 6381
daemonize yes
logfile "6381.log"
dbfilename "dump-6381.rdb"
dir "/redis-cluster-trib/6381/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6381.conf"
vim redis-6382.conf
port 6382
daemonize yes
logfile "6382.log"
dbfilename "dump-6382.rdb"
dir "/redis-cluster-trib/6382/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6382.conf"
vim redis-6383.conf
port 6383
daemonize yes
logfile "6383.log"
dbfilename "dump-6383.rdb"
dir "/redis-cluster-trib/6383/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6383.conf"
vim redis-6384.conf
port 6384
daemonize yes
logfile "6384.log"
dbfilename "dump-6384.rdb"
dir "/redis-cluster-trib/6384/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6384.conf"
3、启动各个节点
redis-server redis-6379.conf
redis-server redis-6380.conf
redis-server redis-6381.conf
redis-server redis-6382.conf
redis-server redis-6383.conf
redis-server redis-6384.conf
4、检查启动情况
cat 6379/6379.log
cat 6380/6380.log
cat 6381/6381.log
cat 6382/6382.log
cat 6383/6383.log
cat 6384/6384.log
ps -ef |grep redis
四、创建集群
1、创建集群
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
replicas 表示为每个主节点设置多少个从节点,如果部署节点使用不同的ip,会尽可能保证主从不在一个节点上
2、健康性检查
redis-trib.rb check 127.0.0.1:6380
四、扩容集群
1、添加2个节点
mkdir 6385 6386
vim redis-6385.conf
port 6385
daemonize yes
logfile "6385.log"
dbfilename "dump-6385.rdb"
dir "/redis-cluster-trib/6385/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6385.conf"
vim redis-6386.conf
port 6386
daemonize yes
logfile "6386.log"
dbfilename "dump-6386.rdb"
dir "/redis-cluster-trib/6386/"
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file "nodes-6386.conf"
2、启动节点
redis-server redis-6385.conf
redis-server redis-6386.conf
3、添加入集群
redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379
redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379
注意这里还是显示为主节点,要设置它为从节点要
redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379 --slave --master-id<arg> 或者看后面变化(在缩减章节)
4、迁移槽
redis-trib.rb info127.0.0.1:6379
可以看到各个主节点槽情况
5、批量迁移
redis-trib.rbreshard 127.0.0.1:6379
数据迁移之前会打印迁移计划,确认后进行迁移
四、收缩集群
跟上面一样,将要清空节点移至其他节点上。
把6386变成6385从节点
连接6386,用cluster replicate 主节点ID
下线节点
redis-trib.rb del-node127.0.0.1:6386 id-name。