redis集群配置分析Word文档格式.docx
《redis集群配置分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《redis集群配置分析Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
eg:
如有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B失败了,那么整个集群就会以为缺少B节点所承担的哈希槽这个范围的槽而不可用。
然而如果在集群创建的时候(或者过一段时间)我们为每个节点添加一个从节点A1,B1,C1,那么整个集群便有三个master节点和三个slave节点组成,这样在节点B失败后,集群便会选举B1为新的主节点继续服务,整个集群便不会因为槽找不到而不可用了。
当然如果B和B1都down了,那集群还是不可用的。
redis集群安装与配置
1、redis集群安装
1.1redis安装
1.1.搭建前的准备工作
Ø
Redis集群是Redis3.0新加入的功能,其在源码的src目录下有自带的集群搭建工具---redis-trib;
它是一个rb为后缀的文件,需要依赖ruby程序才能正常运行,在我们OWL的环境一般需要安装rubygems,需要下载下来后执行rubysetup.rb即可安装成功,再执行geminstallredis后,即可正常使用redis-trib程序。
redis-trib程序可以完成创建新集群,检查集群和对集群进行重新分片的功能。
注:
如安装时提示nosuchfiletoload--rdoc/rdoc(LoadError),可打开~/.gemrc
在最后加入gem:
--no-ri--no-rdoc.保存后再运行geminstallruby,rubysetup.rb和geminstallredis即可。
安装依赖
yuminstall
gcc
tcl
yuminstall-y
ruby
ruby-devel
rubygems
rpm-build
下载安装包
wgethttp:
//download.redis.io/releases/redis-3.0.5.tar.gz
编译安装
tar-zxvfredis-3.0.5.tar.gz
cdredis-3.0.5
makeMALLOC=libc
maketest--》测试redis是否编译正确
makeinstall--》将src/文件夹下的执行文件copy到/usr/local/bin目录
集群依赖
geminstall
redis
集群正常运作至少需要三个主节点,建议每个主节点至少有一个从节点,主从节点分开部署在不同机器上,每台机器可启动多个redis。
mkdircluster-test
cdcluster-test
mkdir70007001
修改配置文件redis.conf(redis-3.0.5目录下有样例)放到对应路径下
port
7000
daemonize
yes
logfileredis-server7000.log
dbfilename数据库名称
dir
数据库存放目录
appendonly
yes启动时优先加载日志记录
appendfilename
"
appendonly7000.aof"
cluster-enabled
cluster-config-file
nodes7000.conf同一台机器上名称不能相同
cluster-node-timeout
5000
-----------------------------------配置
daemonizeyes
port7000
bind192.168.12.15
loglevelnotice
logfile/opt/cluster/logs/redis-server7000.log
dbfilenamedump7000.rdb
dir/opt/cluster/db/
appendonlyyes
appendfilename"
cluster-enabledyes
cluster-config-filenodes7000.conf
cluster-node-timeout5000
-------------------------------------
1.2启动和停止redis
redis-server/path/redis.conf
查看redis进程
ps-ef|grepredis
1.3redis集群
1.3.1集群创建
./redis-trib.rbcreate--replicas1(表示一个从节点)192.168.12.15:
7000192.168.12.18:
7000192.168.12.19:
7000192.168.12.70:
7000192.168.12.15:
7001192.168.12.18:
7001192.168.12.19:
7001192.168.12.70:
7001
1.3.2检查集群状态
./redis-trib.rbcheck192.168.12.15:
7000
#查看集群节点的相关信息
redis-cli-p7000-h192.168.12.219clusternodes
clusterinfo
2、Redis集群相关测试
2.1添加节点
添加主节点
./redis-trib.rbadd-node192.168.12.201:
7000
指定主节点添加从节点
./redis-trib.rbadd-node–slave--master-id节点ID
192.168.12.201:
【=============集群扩容步骤===========】
1)./redis-trib.rbadd-node192.168.12.219:
7002192.168.12.201:
2)./redis-cli-p7000-h192.168.12.201clusternodes==》master-id获取
3)./redis-trib.rbadd-node--slave--master-id70173e348edec46ed4755d6a1d18238e091bc0ed192.168.12.219:
7003192.168.12.201:
4)./redis-trib.rbreshard192.168.12.201:
例子如下:
上述图的最后一步补充说明:
./redis-trib.rbreshard192.168.12.15:
输入要移动的数量
输入目标节点97a3a64667477371c4479320d683e4c8db5858b1.
指定从哪写节点来移动keys到目标节点,输入的是all会从其他每个master上取一些哈希槽,也可以输入从指定节点槽迁移,输入done结束回车
2.2节点删除
【=============集群缩容步骤===========】
1)./redis-trib.rbreshard192.168.12.201:
2)./redis-cli-p7000-h192.168.12.201clusternodes
3)Slave:
./redis-trib.rbdel-node192.168.12.219:
70039290002b631b7b4d363168fa3283d02e06423f51
4)master:
700270173e348edec46ed4755d6a1d18238e091bc0ed
【添加节点异常处理方法】
【从节点停用】
./redis-cli-h192.168.12.202-p7001shutdown
2.3主从切换
从节点切换成主节点
redis-cli-c-h192.168.12.201-p7000clusterfailover
redis-cli-c-h192.168.12.15-p7001clusterfailover蓝色为从节点IP
2.4改变从节点的主节点
redis-cli-c-h192.168.12.201-p7000clusterreplicate节点id
redis-cli-c-h192.168.12.18-p7001(从节点id)clusterreplicateea9bff3e9fa4d9030b93fa66b1bc6b75b6370f22(红色为主节点id)