redis集群搭建详解

Redis集群简介

Redis是企业和个人很常用的缓存工具,面对大的并发,提高系统的健壮性,单个Redis实例是远远不够的。所以搭建Redis集群是很有必要的。
Redis 集群是一个在多个Redis节点间共享数据的集合。
Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令.

Redis 集群的优势:

自动分割数据到不同的节点上。
Redis 集群的数据分片,Redis 集群没有使用一致性hash, 而是引入了 哈希槽的概念.Redis 集群有16384个哈希槽,Redis-cluster将16384个哈希槽,根据策略分给所有的主节点。每个key通过CRC16校验后对16384取模来决定放置哪个槽,
本次测试的集群实例:
节点M:7000 包含[0,5460)
节点M:7001 包含[5460,10922]
节点M:7002 包含[10922,16383)
每个主节点都有N个从节点,如果主节点超过一段时间不可用,节点内部根据投票机制,如果确定该主节点不可到达,则failover,提升某个从节点,为主节点。如果该主节点和其所对应的从节点都被failover,该redis集群变得不可用。集群支持在运行中动态的增加和删除节点。Redis集群如果采用异步复制的话,虽然提高了其性能,但是会在某些情况下丢失数据。

Redis集群搭建

本次搭建采用的是centOs7,本人强烈建议在不要使用ubuntu搭建redis-cluster,因为搭建redis-cluster需要安装ruby,rubygems,rvm。我开始在ubuntu14下搭建环境碰到拿到了很多问题,由于ubuntu并不支持yum命令(即使你安装了yum,在ubuntu下也无法解决一大堆的依赖问题)。最后转战centOs发现yum命令真是太强大了,言归正传。
1,官网下载redis-3.2.11.tar.gz,至少要在3.x以上,附上官网下载链接
https://redis.io/download
以下操作都视为root用户

tar xzf redis-3.2.11.tar.gz
cd redis-3.2.11
make
make install PREFIX=/srv/software/redisCluster

进入redisClustermv bin 7000 #该修改bin文件为7000
cd 7000
touch redis.confi 命令将如下内容写入port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yesedisCluster目录
这里写图片描述
将7000拷贝5份到,名字为7001-7005,当前目录下,分别进入各目录,修改redis.conf文件
vi redis.conf文件,i为插入,将端口和当前父目录相同,
这里写图片描述
改完后按ESc,再输入:wq保存退出。vi命令不熟的自行百度。
拷贝redis-3.2.11目录下src的目下的redis-trib.rb文件到redisCluster目录下。该脚本是用ruby编写的。这里写图片描述

这里写代码片
接下来需要安装ruby。

yum install ruby
yum install rubygems

切记检查自己的网络是否开启,我采用是的虚拟机的NAT模式,
这里写图片描述
也可用ifconfig检查是否网络开启了。
安装好ruby后,
gem install redis
此处需注意,我的yum默认帮我下载时ruby-2.0xx版本,然后提示我ruby至少需要2.2.2版本。
于是乎安装rvm,这是一个ruby的版本管理器。

curl -L get.rvm.io | bash -s stable

这里建议大家翻墙安装,国内下载实在是慢。(翻墙软件推荐蓝灯)
这里写图片描述
一段时间后提示没有公钥啥的,
这里写图片描述
拷贝如上图中的 gpg2 – recv-keys 409B6B1…….执行,执行完,提示已导入,
再重新

curl -L get.rvm.io | bash -s stable

等下载完成
这里写图片描述
出现complete就说明安装成功了。

rvm install ruby-2.2.4

安装好后,查看当前ruby版本。

rvm current

确保当前系统指定的ruby版本是2.2.4

然后继续安装gem install redis

它会提示默认的源不可用,这选用一个淘宝的源,要移除原先的源。

gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.org/
$ gem sources -l
https://gems.ruby-china.org

确保只有 gems.ruby-china.org

然后继续安装
gem install redis
这里写图片描述
准备工作做好之后就开始启动redis集群了。
进入redisCluster目录写一个shell脚本启动redis集群。
touch start.sh

cd 7000
./redis-server redis.conf
cd ..
cd 7001
./redis-server redis.conf
cd ..
cd 7002
./redis-server redis.conf
cd ..
cd 7003
./redis-server redis.conf
cd ..
cd 7004
./redis-server redis.conf
cd ..
cd 7005
./redis-server redis.conf
cd ..

运行脚本
chmod 777 start-all.sh #赋权
./start.sh

使用redis-trib.rb创建集群

./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 

出现如下图所示,即为成功
这里写图片描述
然后可以启动某个客户端进行测试
这里写图片描述
这里写图片描述
深入了解集群部署策略,和使用客户连接集群,看官方文档。
https://redis.io/topics/introduction

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值