一、下载redis
下载地址:http://download.redis.io/releases/
wget http://download.redis.io/releases/redis-6.0.0.tar.gz
二、解压
tar xzvf redis-6.0.0.tar.gz
三、安装
cd redis-6.0.0
make
cd src
make install PREFIX=/usr/local/redis
可能会出现以下错误:
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/data/program/redis-6.0.0/src'
make: *** [all] Error 2
未安装gcc编译工具,使用以下命令安装gcc.
$ yum -y install make gcc gcc-c++ ncurses-devel libstdc++-devel
四、创建文件夹
集群中 Redis 节点的端口号为 6381-6386 ,端口号即集群下各实例文件夹。数据存放在 端口号/data 文件夹中。
mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 6381/data 6382/data 6383/data 6384/data 6385/data 6386/data
五、在 /usr/local/redis-cluster 下创建 bin 文件夹,用来存放集群运行脚本,并把安装好的 Redis 的 src 路径下的运行脚本拷贝过来。
mkdir redis-cluster/bin
cd /usr/local/redis/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
六、复制一个新 Redis 实例
我们现在从已安装好的 Redis 中复制一个新的实例到 6381 文件夹,并修改 redis.conf 配置。
cp -r /usr/local/redis/* /usr/local/redis-cluster/6381
cp redis.conf /usr/local/redis-cluster/6381/bin/
每个redis.conf配置文件,配置如下
port 6381(每个节点的端口号)
daemonize yes redis进程是否以守护进程的方式运行,yes为是
bind 192.168.119.131(绑定当前机器 IP)
dir /usr/local/redis-cluster/9001/data/(数据文件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes9001.conf(9001和port要对应)
cluster-node-timeout 15000
appendonly yes
protected-mode no 保护模式修改为否,允许远程连接
requirepass "123456" 设定密码
appendonly yes 打开AOF持久化支持
masterauth 123456
其他节点6382-6386,复制6381
cp -r /usr/local/redis-cluster/6381/* /usr/local/redis-cluster/6382
cp -r /usr/local/redis-cluster/6381/* /usr/local/redis-cluster/6383
cp -r /usr/local/redis-cluster/6381/* /usr/local/redis-cluster/6384
cp -r /usr/local/redis-cluster/6381/* /usr/local/redis-cluster/6385
cp -r /usr/local/redis-cluster/6381/* /usr/local/redis-cluster/6386
其他节点复制6381的redis.conf文件,只需要修改下如下几项
port 6381
dir /usr/local/redis-cluster/6381/data/
cluster-config-file nodes-8381.conf
pidfile /var/run/redis_6381.pid
七、启动 6381-6386 六个节点
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6381/bin/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6382/bin/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6383/bin/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6384/bin/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6385/bin/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/6386/bin/redis.conf
可以检查一下是否启动成功:ps -el | grep redis
随便找一个节点测试试
/usr/local/redis-cluster/bin/redis-cli -h 81.141.127.119 -p 6381
set name mafly
连接成功了,但好像报错了阿???
(error) CLUSTERDOWN Hash slot not served(不提供集群的散列槽
低于redis5.0版本,需要安装ruby,redis5.0版本以上推荐使用redis-cli创建进群
八、安装集群所需软件
由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口。
yum install ruby
yum install rubygems
gem install redis
如果出现错误:ERROR: Error installing redis:
redis requires Ruby version >= 2.4.0.
执行gem install redis命令时报错 提示ruby版本必须大于等于2.4.0
解决方案:先安装rvm,再把ruby版本提升至2.4.0
1.安装curl
yum install curl
2.安装RVM
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm #如果未找到rvm文件重新执行上面代码
4.查看rvm库中已知的ruby版本
rvm list known
5.安装一个ruby版本
rvm install 2.6.3
6.使用一个ruby版本
rvm use 2.6.3
7.设置默认版本
ruby --version
8.卸载一个已知版本
rvm remove 2.0.0
9.安装redis
[root@arslinux-01 ~]# gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
[root@arslinux-01 ~]# useradd -g rvm rvm
[root@arslinux-01 ~]# source /etc/profile.d/rvm.sh
[root@arslinux-01 ~]# \curl -sSL https://get.rvm.io | bash -s stable
九、gem install redis 安装成功后,创建集群
cd /usr/local/redis-cluster/bin/目录下
./redis-cli --cluster create 81.141.127.119:6381 81.141.127.119:6382 81.141.127.119:6383 81.141.127.119:6384 81.141.127.119:6385 81.141.127.119:6386 --cluster-replicas 1 -a 123456
上图则代表集群搭建成功啦!!!