如何搭建Redis集群 ?

如何搭建Redis集群 ?

一:集群的概念

​ 所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定、高效的状态。

  • redis集群中,每一个redis称之为一个节点

  • redis集群中,有两种类型的节点:主节点(master)、从节点(slave)

  • redis集群,是基于redis主从复制实现

二:实验环境

(1)Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群

(2)要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器

(3)安装ruby

这边准备了两台虚拟机,每台安装三个网卡,总共六个网卡,同时运行6个redis实例。(也可以准备6台虚拟机,根据自己情况而定,但至少六块网卡)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-14djZIVQ-1584960671862)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1584880906903.png)]

软件包自行下载:链接:https://pan.baidu.com/s/1jztqjuAx9s8lhtTil72cRQ 提取码:ktcq
复制这段内容后打开百度网盘手机App,操作更方便哦

三:实验步骤

主、从服务器配置相同

1、安装编译工具
[root@localhost ~]# yum install gcc gcc-c++ make -y
2、挂载redis软件包并解压
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.0.107/share /abc
[root@localhost ~]# cd /abc
[root@localhost abc]# tar zvxf redis-5.0.7.tar.gz -C /opt
3、直接进行make,且指定目录并安装

( 因为解压的软件中的配置脚本已经被封装化了,所以直接make )

[root@localhost abc]# cd /opt/redis-5.0.7/
[root@localhost redis-5.0.7]# make
[root@localhost redis-5.0.7]# make PREFIX=/usr/local/redis/ install
[root@redis redis-5.0.7]# cd /usr/local/redis/
[root@redis redis]# ls
bin
[root@redis redis]# cd bin/
[root@redis bin]# ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server
4、执行配置文件脚本,并设置
[root@redis bin]# cd /opt/redis-5.0.7/utils/
[root@localhost utils]# ./install_server.sh 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKJQLbMT-1584960671864)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1584874976511.png)]

5、优化配置,创建软链接便于系统识别
[root@localhost utils]# cd /etc/redis
[root@localhost redis]# ls
6379.conf
[root@localhost redis]# ln -s /usr/local/redis/bin/* /usr/local/bin
[root@localhost redis]# netstat -ntap | grep 6379       ‘redis部署完成’
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      8761/redis-server 1 
6、修改配置文件,所有节点一样(主从服务器都要修改)
[root@localhost redis]# vim /etc/redis/6379.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nA78NAXr-1584960671864)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1584877218924.png)]

[root@localhost redis]# /etc/init.d/redis_6379 restart       ‘重启服务’
Stopping ...
Redis stopped
Starting Redis server...

(重启之后就会多出两个文件,appendonly.aof:持久化文件  nodes-6379.conf:节点首次启动生成的配置文件)
[root@localhost redis]# cd /var/lib/redis/6379
[root@localhost 6379]# ls
appendonly.aof  dump.rdb  nodes-6379.conf

在主服务器上配置(master)

1、导入key文件
[root@localhost 6379]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
2、主服务器安装rvm
[root@localhost 6379]# curl -sSL https://get.rvm.io | bash -s stable
3、安装ruby
[root@localhost abc]# tar zvxf rvm-1.29.9.tar.gz -C /opt
[root@localhost abc]# cd /opt/rvm-1.29.9/
[root@localhost rvm-1.29.9]# ./install 
[root@localhost rvm-1.29.9]# source /etc/profile.d/rvm.sh   ‘执行环境变量’
[root@localhost rvm-1.29.9]# rvm list known    ‘列出ruby可安装的版本’
[root@localhost rvm-1.29.9]# rvm install 2.4.1    ‘安装ruby2.4.1版本,等待时间较长’
[root@localhost rvm-1.29.9]# rvm use 2.4.1    '使用ruby2.4.1版本'
[root@localhost rvm-1.29.9]# ruby -v    ‘查看当前ruby版本’
[root@localhost rvm-1.29.9]# gem install redis   ‘再次安装redis’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ptFyIM6-1584960671865)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1584952006503.png)]

主、从服务器都要添加两块网卡

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cbztmYFx-1584960671865)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1584952117003.png)]

开启服务,关闭防火墙:
[root@localhost rvm-1.29.9]# systemctl restart network
[root@localhost rvm-1.29.9]# systemctl stop firewalld.service 
[root@localhost rvm-1.29.9]# setenforce 0

主服务器创建集群

[root@localhost rvm-1.29.9]# redis-cli --cluster create --cluster-replicas 1 192.168.48.128:6379 192.168.48.133:6379 192.168.48.134:6379 192.168.48.130:6379 192.168.48.135:6379 192.168.48.136:6379

一主一从的绑定关系是随机的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JlHmFQ7z-1584960671866)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1584952941892.png)]

  • 验证

随意登录一台redis,创建一个键值对
[root@localhost rvm-1.29.9]# redis-cli -h 192.168.48.134 -p 6379
192.168.48.134:6379> keys *
(empty list or set)
192.168.48.134:6379> set name cwt
OK
192.168.48.134:6379> get name
"cwt"
192.168.48.134:6379> exit
[root@localhost rvm-1.29.9]# redis-cli -h 192.168.48.136 -p 6379
192.168.48.136:6379> keys *
1) "name"
192.168.48.136:6379> get name
(error) MOVED 5798 192.168.48.133:6379
192.168.48.136:6379> exit
[root@localhost rvm-1.29.9]# redis-cli -h 192.168.48.133 -p 6379
192.168.48.133:6379> keys *
1) "name"
192.168.48.133:6379> get name
"cwt"
192.168.48.133:6379> exit

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值