Linux 搭建Redis集群

283 阅读3分钟

Linux搭建Redis 集群部署

安装redis前需要准备的环境:

gcc;

ruby;

Rubygems:

redis.5.0.9;

gcc环境:

redis是c语言开发的,安装redis需要c语言的编译环境,用来编译redis的源码,使用gcc -v查看之前是否装过

gcc 安装步骤:

 下载安装包:wget  http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.8.5.tar.bz2  
 解压缩:tar zxvf gcc-4.8.5.tar.gz  
 进入解压后的目录:cd gcc-4.8.5
 下载配置和安装需要的依赖库:./contrib/download_prerequisites

 至此,gcc的安装就完成了,可以使用上面的gcc -v查看安装是否成功

ruby环境:

ruby 用来执行集群的命令

和gcc同样的使用ruby -c查看之前是否已经安装过

ruby 安装步骤:

下载:wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.9.tar.gz
解压:tar -xvzf ruby-2.4.9.tgz  
进入解压后的目录:cd ruby-2.4.9
配置并编译源代码:
./configure
make
make install

yum安装gems

yum install rubygems 

RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理 程序包安装的工具。 简单理解就是ruby运行时,需要的各种插件都在gems里; 是一种技术支持; 过程中需要同意操作

安装redis 接口包:

gem install redis  //安装redis接口包 下载支持redis的插件内容;

以上都是准备工作,准备好上面的环境及依赖后,下面安装redis

redis 安装:

下载好redis安装包后解压:
$ tar zxvf redis-5.0.9.tar.gz 
进入解压目录,然后执行make && make install 命令安装
$ cd /home/redis/redis-3.2.12
$ make && make install

redis集群安装至少需要三个主节点,三个对应的从节点

这里在同一台机器上安装,创建6个文件分别存放配置信息,文件夹名以端口命名

1.使用mkdir命令批量创建文件夹

2.然后我们需要在安装目录复制redis-cli、redis-server、redis.conf 三个配置文件到每个文件夹,用来启动单个redis. 

3.修改每个redis.conf文件

bind 0.0.0.0   //0.0.0.0表示允许所有连接
protected-mode no //保护模式,yes表示不允许远程连接
port 7001  //端口,这里每个配置文件不同
daemonize yes  //以后台方式启动
appendonly yes   //redis 将每一次写操作请求都追加到appendonly.aof 文件中redis重新启动时,会从							该文件恢复出之前的状态。
cluster-enabled yes  //启用集群
cluster-node-timeout 5000  //节点超时时间

然后在每个文件下执行redis-server  redis.conf命令    

启动每个redis服务

下面进行集群设置,由于我安装的redis版本是5.0.9所以使用的是下面的命令

redis-cli --cluster create 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 --cluster-replicas 1

如果是版本比较低的话,可以使用如下命令,看自己安装的版本可选择相应的命令进行

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

集群安装成功后,会显示主从节点信息,三个master,三个slave

注意:在安装集群之前,要把从节点的防火墙关闭,开放端口,这样主从节点才能进行通信

集群测试

切换到任意节点目录下,连接添加数据测试

redis-cli  -p 7000 -c

这里可以看到key 分布到那个槽上,会自动跳转到相应的节点上

以上