环境讲解:
两台配置:1核2G,另一台:1核1G; 操作系统:Centos 7.6 Redis:3.2.12 Ruby:2.3.4由于是云服务器所以默认安装了JDK1.8和yum以及gcc,如果不是云服务器的用户请试试云服务器吧!还是很方便的
了解什么是Redis集群(可跳过):答:集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。
集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。
集群的作用,可以归纳为两点:
数据分区:数据分区(或称数据分片)是集群最核心的功能。
集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,存储容量大大增加;另一方面每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力。
Redis单机内存大小受限问题,在介绍持久化和主从复制时都有提及;例如,如果单机内存太大,bgsave和bgrewriteaof的fork操作可能导致主进程阻塞,主从环境下主机切换时可能导致从节点长时间无法提供服务,全量复制阶段主节点的复制缓冲区可能溢出……。
高可用:集群支持主从复制和主节点的自动故障转移(与哨兵类似);当任一节点发生故障时,集群仍然可以对外提供服务。
值得一提的是这几天的面试遇到一个很有意思的问题(本人亲身经历):
面试官:让你设计一个抢票或者秒杀或者红包系统你该如何实现?
我:首先应该加锁,然后加redis的缓存和预热。。。
面试官:没了?
我:我只知道这么多。
面试官:那如果是在多个集群下呢?
我:分布式锁!
面试官欣慰的点头说:那你知道分布式锁的实现方式吗?
我:zookeeper和redis的redisson。
面试官:redis的分布式集群玩过吗?
我:没有。。。
面试官:有空去玩玩吧,既然你没玩过那我也不必要和你啰嗦了。
到此我的奇怪的经历又上涨了!于是今天买了两个测试服务器来玩玩redis的集群;
这是我的使用场景,但是现实中和面试的例子差不多,都是有需求才去接触,(可能我比较懒~haha)
当然今天并不是说面试,我们言归正传;
一台全新的服务器首先需要配置密码和SSH登录此处我跳过;
接着可以更新yum(服务器的yum都是安装好的)
在云服务器中的安装则是很简单的;
yum install redis安装需要提示输入y直接输入!
接着安装完成后查看安装情况:
redis-server -v或者
redis-server --version都可以查看当前安装的redis版本
方式二:直接从官网下载gz文件
redis旧版本下载地址
一般都是3.2.12版本。所以此处以3.2.12版本为例;
下载好后上传到云服务器,并且解压后,make Install 安装
redis安装好后,有五个文件在linux文件系统的/usr/bin中
redis-benchmark
redis-check-aof
redis-check-rdb
redis-cli
redis-sentinel
redis-server
还有一个配置文件在/etc中:
redis.conf
现在我们在/usr/local下创建一个文件名叫redis
cd /usr/local mkdir redis接着创建两个文件夹:
cd redis mkdir redis-01 mkdir redis-02接着将上述的文件分别复制到这两个01和02文件内,
这是为了方便我们更好的在本机调用:
很多小伙伴会有疑问说为什么需要ruby呢?
因为在redis/src中有一个文件叫做redis-trib.rb,这个文件就是作者用Ruby写的,用来搭建redis集群(redis3.0版本时才开始支持集群),redis-trib.rb的后缀就是Ruby的简写,所以想要搭建redis集群需要有一个能执行.rb这种文件的运行环境,这个环境就是Ruby。
接着又会有小伙伴说:这个安装简单!直接 yum install ruby!
你要是这么想的话,会浪费你将近5-10分钟的时间(取决你的网速)因为你需要安装后升级它!
升级的教程我直接用别人的了:[Ruby升级教程](https://www.cnblogs.com/qize/p/11394841.html](https://www.cnblogs.com/qize/p/11394841.html "Ruby升级教程") 在此也感谢这个博主所写的经验教程
一般云服务器如果安装的redis是3.2.12,那么你的ruby使用yum安装的话一定是2.0版本的!
这个和我们使用的ruby操作redis集群不适应!
所以人生苦短:
接着解压下载好的ruby:
tar -xzvf ruby2.4.5接着cd ruby2.4.5执行下面的命令
./configure –-prefix=http://www.likecs.com/usr/local/ruby -prefix是将ruby安装到指定目录,也可以自定义
make && make install检查Ruby安装情况:
ruby -v不出意外应该是可以显示版本的,之后安装这个gem的依赖
yum install rubygems接着我们需要继续安装Redis操作工具
gem install redis 3、检查配置文件(三台服务器都需要)