redis-2- 程序员学点运维知识02
<!--more-->
承前脚本安装需要ruby环境创建集群测试集群查看信息平衡节点删除节点添加节点踩坑总结
本日状态:
早上看一篇文章叫:
"我牺牲双眼,整理出一份网络矫情文学赏析"
笑了好半天
昨天搞定了redis的集群, 本来是没什么问题了, 但看完关于矫情的记述后我觉得, 一定会有人跳出来:
"low货,人家redis集群都是用集群脚本安装的."
作为一个9012年的猿, 虽然yann觉得可以举100个理由证明集群脚本的不方便性, 但脚本本身还是可以了解一下的.
这里所说的脚本是叫做 redis-trib 的rb脚本.
虽然100个理由比较难, 但少数不用的理由还是举的出来的:
需要ruby环境
对容器的支持不好
不支持密码
下面逐条开撕:
yum install ruby
# 或 apt-get install ruby
gem install redis
这里还会有一个坑:
gem时系统会报ruby的版本太低
至于如何使用rvm修改版本就是另一篇文了
对于洁癖人士 (比如yann)来说, 无端在系统里安装ruby是不可接受的.
况且还有衍生问题,后面会叙述.
命令参数
cd /usr/local/src/redis-3.2.11/src
./redis-trib.rb help
create
check
info
fix
reshard
./redis-trib.rb create --replicas 1 127.0.0.1:6479 127.0.0.1:6480 127.0.0.1:6481 127.0.0.1:6482 127.0.0.1:6483 127.0.0.1:6484
ps. 如果需要指定服务器为从库, 只能先添加3台, 再通过新增节点指定其对应主库
不支持密码
第二点理由爆发了.
redis-trib.rb 会报无法连接集群, 需要修改client.rb文件
修改源码文件后, 脚本连接上了集群,继续其他操作
./redis-trib.rb check 127.0.0.1:6479
./redis-trib.rb info 127.0.0.1:6479
根据权重分配, 比较有用的功能之一
./redis-trib.rb rebalance 127.0.0.1:6479
只能删除没有分配slot的节点
./redis-trib.rb del-node 127.0.0.1:6480
加主库注意添加的服务器在前, 加从库需要主库id
./redis-trib.rb add-node 127.0.0.1:6488 127.0.0.1:6479
./redis-trib.rb add-node --slave --master-id 77c2a2d5e96d14a4c5b5614cb68ad27d40530f4b 127.0.0.1:6480 127.0.0.1:6479
其实上面的操作统统没有完成.
原因很简单, yann使用容器搭的redis
会有2个ip, 容器外ip和容器内ip.
使用容器内ip脚本运行不起来, 而使用容器外ip的话,脚本完成不了. 原因请自己想一下.
到这一步,算掉到坑里出不来了, 虽然在容器内部安装ruby可以解决, 但容器是精简系统, redis文件也不全...
redis-trib.rb 对容器的支持不好
今天的内容, 各位只要有个粗略的了解就行了, 不用实践.
如果想尝试, 不要使用容器构建, 在本地复制6套源文件, 改对应配置就好,上面命令都可以使用的.
redis-trib.rb的用途没有想象中大, 但是不会的话, 看起来很慌
面试就像食戟一样, 就是比新奇.
不要对方抛出个东西, 己方翻白眼就好. ^ ^
这是我的第60篇文章, 吸取去年的教训,公交号上基本不贴大段代码. 只写了运行过程,全部代码放在 阅读原文 里.
本链接过去的个人主页上,我做了章节链接, 方便读者查看每次更新的文件.
专题系列文章分享中. 码字不易.
求分享,求点赞.