Redis不仅可以搭建单机的,还可以搭建集器或者主从复制的结构,在高并发的环境下具有高可用性。在搭建集群时使用redis官方给的工具:redis-trib.rb 这个工具构建redis集群的时候,报错了:“redis requires Ruby version >= 2.2.2”,于是这里给出完整的安装过程和配置过程
一 Redis安装
1.选择安装位置,我这里安装在/src文件里
cd /usr/local/src
2.下载Redis,本例的版本是4.0.10,Linux的版本是CentOS7
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
如果提示没有找到命令,则先执行如下命令安装wget,再下载Redis
yum install wget
若系统没有网络,可以去官网下载 Redis 压缩包http://download.redis.io/releases,然后将下载的 redis 上传到虚拟机的/usr/local/src 目录下
3.安装Redis
先解压,在进入解压目录安装,如下4条命令;
tar -zxvf redis-4.0.10.tar.gz
cd redis-4.0.10
make MALLOC=libc
make install
如果在执行make MALLOC=libc 提示gcc 命令没有找到时,先安装gcc,命令如下:
yum install gcc
4.配置Redis
我们可以在目录中找到redis.conf配置文件,用vi打开,主要修改如下几个地方
daemonize yes
#bind 127.0.0.1
requirepass 123@123
protected-mode no
说明:
第一行: 表示redis可以在后台启动
第二行:表示连接该Redis的地址,默认下只能本地连接,如果注释掉,外网就可以连接了
第三行: 设置登陆该redis的密码
第四行: 由于设置了登陆密码,保护模式可以关闭了
5.配置CentOS7
为了可以让远程电脑连接上,我们要开放6370端口或者直接禁用防火墙。
可以看这边文章:linux的Centos系统开放特定端口,关闭防火墙,解决Centos7没有iptables的问题
6.Redis的启动和关闭
启动
redis-server redis.conf //其中redis.conf是配置文件,你也可以指定其他配置文件
进入Redis控制台
redis-cli -a 123@123
执行ping命令,如果看到pong,表示redis安装成功
如果想退出,先执行shutdowm 再执行exit命令
到这里单机的Redis就可以了,接下来搭建Redis集群
二 Redis集群配置
1,集群规划
我们在同一台服务器上用不同的端口代表不同的redis服务器
主节点: 192.168.174.10:8081,192.168.174.10:8082,192.168.174.10:8083
从节点: 192.168.174.10:8085,192.168.174.10:8085,192.168.174.10:8086
2.集群配置
Redis的集群管理工具依赖于Ruby环境,但是centos7默认的Ruby环境一般都是低的,不然会出现redis requires Ruby version >= 2.2.2的问题”所以按以下步骤来
安装RVM,RVM是Ruby的管理工具
先执行一条官方 https://rvm.io/ 复制来的长命令(…C0E3空格7D2B…)
#gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
可能会等待十几秒时间,然后执行下面命令:
\curl -sSL https://get.rvm.io | bash -s stable
按照提示,执行该命令
source /etc/profile.d/rvm.sh
最后的命令是让RVM安装后直接可以用,然后查看RVM里的Ruby列表
rvm list known
安装ruby 2.4.1 ,直接跟版本号即可
rvm install 2.4.1
安装Redis依赖
gem install redis
接下来创建redisCluster文件,将上面单机下载的redis压缩包复制到redisCluster并解压安装,如
mkdir redisCluster
cp -f ./redis-4.0.10.tar.gz ./redisCluster
cd redisCluster
tar -zxvf redis-4.0.10.tar.gz
cd redis-4.0.10
make MALLOC=libc
make install
安装成功后,把解压文件中的redis-4.0.10/src中的redis-trib.rb文件复制到redisCluster文件中
cp -f ./redis-4.0.10/src/redis-trib.rb ./
然后再redisCluster文件再创建6个目录,分别是8001-8006,代表6个redis服务器,于是我们复制redis-4.0.10目录下的配置文件redis.conf到这6个目录中,修改其中的端口分别是8001—8006.主要修改配置如下:
port 8001
#bind 127.0.0.1 注释后可以远程访问
cluster-enabled yes #开启集群
cluster-config-file nodes-8001.conf #配置文件名
protected no #关闭
daemonize yes #后台运行
requirepass 123@123
masterauth 123@123
安装这个配置对8002-8006的配置文件进行配置
配置完成后,返回到redisCluster目录,对6个服务器启动
redis-server ../8001/redis.conf
redis-server ../8002/redis.conf
redis-server ../8003/redis.conf
redis-server ../8004/redis.conf
redis-server ../8005/redis.conf
redis-server ../8006/redis.conf
启动完成后对redis-trib.rb进行修改
用vi打开redis-trib.rb 搜索到这行(用“/”搜索Redis.new 就行)
@r = Redis . new (:host=> @info[:host],:port=> @info[:port], :timeout => 60 )
修改这行增加密码
@r = Redis . new (:host=> @info[:host],:port=> @info[:port], :timeout => 60,password=>"123@123" )
这样就好了,我们就可以用redis-trib.rb创建集群了
3.创建集群
./redis-trib.rb create --replicas 1 192.168.174.10:8081,192.168.174.10:8082,192.168.174.10:8083,192.168.174.10:8085,192.168.174.10:8085,192.168.174.10:8086
其中 —replicas 1 这个1代表每个主机有多少个从机,在创建集群刚才中,会分配主机和从机。
当集群创建成功后我们就可以用登陆任何的redis服务器就行。
redis-cli -p 8001 -a 123@123 -c
-p 是端口, -a是密码 -c表示用集群的方式登陆
4.查看集群状态
登陆成功后可以用以下命令查看集群状态 可以看到每个节点的信息,他是主机还是从机
cluster info
原创来源:滴一盘技术