Redis集群简介

Redis提供了集群方案,也是就默认src下的redis-trib.rb,Redis集群就是去中心化,去中间件,主节点必须要有三个以上,否则创建集群时,会失败;
可以是一台机器上的三个节点,也可以是三个机器,
假如处理15000个slot的话,他们分别承担的区间是
A:0-5000;
B:5000-10000;
C:10000-15000;
set name shr
按照redis cluster的哈希槽算法:CRC16(‘name’)%150000 。 那么就会把这个key 的存储分配到 A 上了。
新增一个节点,前面的节点每个会拿一定的slot给D;
Redis cluster的主从模式:
给每个主节点添加从节点,主节点提供数据储存吗,从节点从主节点拉去数据备份,主节点挂掉之后,从节点变为主节点,主节点会有预警,及时调试;

一、单机多节点调配

1、看一下redis-trib.rb是否健在,应该是存在; 2、在root目录下新建一个文件夹储存节点,名字要有特色,把conf文件复制六个,放在六个不同文件夹中; 3、修改端口号,和与端口号相关的数字,接下来把cluster的几个开关打开,具体操作网上很多; port 7001 //六个节点配置文件分别是7001-7006

daemonize yes //redis后台运行

pidfile /var/run/redis_7001.pid //pidfile文件对应7001-7006

cluster-enabled yes //开启集群

cluster-config-file nodes_7001.conf //保存节点配置,自动创建,自动更新对应7001-7006

cluster-node-timeout 5000 //集群超时时间,节点超过这个时间没反应就断定是宕机

appendonly yes //存储方式,aof,将写操作记录保存到日志中
4、启动服务通过这6个conf文件;
5、下载ruby环境:yum -y install ruby ruby-devel rubygems rpm-build
获取秘钥: gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
升级ruby:
1.安装RVM:
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
find / -name rvm -print
/usr/local/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm/src/rvm/scripts/rvm
/usr/local/rvm/bin/rvm
/usr/local/rvm/lib/rvm
/usr/local/rvm/scripts/rvm

#source /usr/local/rvm/scripts/rvm
2.查看rvm库中已知的ruby版本
#rvm list known
MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.6]
[ruby-]2.3[.3]
[ruby-]2.4[.0]
ruby-head
….
3.安装一个ruby版本
#rvm install 2.3.3
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.3 - #extracting rubygems-2.6.12….
ruby-2.3.3 - #removing old rubygems………
ruby-2.3.3 - #installing rubygems-2.6.12…………………….
ruby-2.3.3 - #gemset created /usr/local/rvm/gems/ruby-2.3.3@global
ruby-2.3.3 - #importing gemset /usr/local/rvm/gemsets/global.gems……………|
ruby-2.3.3 - #generating global wrappers………
ruby-2.3.3 - #gemset created /usr/local/rvm/gems/ruby-2.3.3
ruby-2.3.3 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.3 - #generating default wrappers………
ruby-2.3.3 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.3.3 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
4.使用一个ruby版本
rvm use 2.3.3
Using /usr/local/rvm/gems/ruby-2.3.3
[5].设置默认版本
rvm use 2.3.3 --default
Using /usr/local/rvm/gems/ruby-2.3.3
[6].卸载一个已知版本
rvm remove 2.0.0
查看ruby版本:
ruby --version
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
安装redis:
gem install redis
Fetching: redis-4.0.0.gem (100%)
Successfully installed redis-4.0.0
Parsing documentation for redis-4.0.0
Installing ri documentation for redis-4.0.0
Done installing documentation for redis after 1 seconds
1 gem installed
安装gem端口:gem install redis --version 你的redis版本;
查看接口是否安装::gem list;
6、接下来启动:
redis-trib.rb create --replicas 1 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 127.0.0.1:7006
此处有坑,命令一直找不到,楼主也懒得把那个集群文件移来移去,直接按照步骤重新安装了一次,OK,单机多节点集群搞定;
7、开启之后看到Can I set the above configuration? (type ‘yes’ to accept): 输入yes表示接受配置,显示配置哈希槽,以及集群创建成功,可以用了;
下面来测试一下:启动:redis-cli -c -p 7001
启动完成:set name “张三”; exit
启动:redis-cli -c -p 7005 get name;
能获取到值,说明集群成功;
接下来我们让一个主节点宕机:kill -9 4399 干掉port7001
ps -ef|grep redis
检查一下:redis-trib.rb check 127.0.0.1:7002
[OK] All 16384 slots covered.
所有槽值被覆盖,说明还能用,没有被破坏;7004成为主节点;
我们再把7004干掉:kil -9 4359
[ERR] Not all 16384 slots are covered by nodes.
还有这么多槽值没被覆盖,再去存值取值试一下
(error) CLUSTERDOWN The cluster is down
发生错误,集体宕机;所以要注意主从节点不能全部挂掉;

二、多机多节点调配

1、先配两台Linux虚拟机,两台ip分别为192.168.186.128和192.168.186.129; 2、分别在上面各启动三个节点,128启动7001,7002,7003;129启动7004,7005,7006; 3、关闭防火墙防止访问不到:systemctl stop firewalld.service 查看防火墙状态:service iptables status iptables; 4、接下来开启redis-trib.rb create --replicas 1 192.168.186.128:7001 192.168.186.128:7002 192.168.186.128:7003 192.168.186.129:7004 192.168.186.129:7005 192.168.186.129:7006 然后输入yes接受配置;此时注意必须是全新的redis才可以开启,不能有缓存和备份; 5、测试方法和单机多节点一样: a:随机连接一个节点,设置key; b:任意一个节点都能获取; c:主从节点可以宕机一个,但不可以全部宕机,因为有槽值没有分配;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值