可参考 http://www.cnblogs.com/frankdeng/p/9332618.html
环境依赖:
sudo yum install gcc -y
sudo yum -y install openssl openssl-devel
ruby2.5.1
1.下载安装包
http://download.redis.io/releases/redis-4.0.10.tar.gz
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
2.解压缩
tar -zxvf redis-4.0.10.tar.gz -C /usr/local/
3.安装redis
#cd redis解压缩目录
make PREFIX=/usr/local/redis-4.0.10 install
出现 jemalloc/jemalloc.h:没有那个文件或目录,指定MALLOC=libc即可
make PREFIX=/opt1/beh/core/redis-3.2.3 MALLOC=libc install
安装完成后,在redis安装目录下会出现一个bin目录,bin目录下有几个可执行文件
redis-benchmark ---性能测试工具
redis-check-aof ---AOF文件修复工具
redis-check-rdb ---RDB文件检测工具(快照持久化文件)
redis-cli ---命令行客户端
redis-sentinel -> redis-server ---redis哨兵
redis-server ---redis服务器启动命令
配置环境变量
#redis-4.0.10 settings
export REDIS_HOME=/usr/local/redis-4.0.10
export PATH=$REDIS_HOME/bin:$PATH
4.创建集群目录(单机多实例3主3从)
#1. cd $REDIS_HOME
cd /usr/local/redis-4.0.10
mdkir redis-cluster
mkdir 12301
mkdir 12302
mkdir 12303
mkdir 12304
mkdir 12305
mkdir 12306
5.将redis安装目录/usr/local/redis-4.0.10下的redis.conf文件拷贝至12301文件夹,并修改以下配置:
daemonize yes #开启后台运行
port 8001 #工作端口
bind 172.16.0.13 #绑定机器的内网IP,一定要设置呀老铁,不要用127.0.0.1,如果需要远程访问使用0.0.0.0
dir /usr/local/redis-4.0.10/redis-cluster/12301/ #指定工作目录,rdb,aof持久化文件将会放在该目录下,不同实例一定要配置不同的工作目录
cluster-enabled yes #启用集群模式
cluster-config-file nodes-12301.conf #生成的集群配置文件名称,集群搭建成功后会自动生成,在工作目录下
cluster-node-timeout 5000 #节点宕机发现时间,可以理解为主节点宕机后从节点升级为主节点时间
appendonly yes #开启AOF模式
pidfile /var/run/redis_12301.pid #pid file所在目录
6.把12301文件夹下的redis.conf文件拷贝到其他5个目录,并重新修改port 、dir、cluster-config-file 三个属性
这里可以使用sed命令快速修改
7.由于创建集群需要用到redis-trib这个命令,它依赖Ruby,因此我们要先安装一下,注意ruby版本不能太低。
安装ruby
tar -zxf /opt1/beh/packages/ruby-2.5.1.tar.gz -C /opt1/beh/core/
cd /opt1/beh/core/ruby-2.5.1
./configure --prefix=/usr/local/ruby
make
make install
查看版本
/usr/local/ruby/bin/ruby -v
配置环境变量
export RUBY_HOME=/usr/local/ruby
export PATH=$RUBY_HOME/bin:$PATH
gem install redis时报错可参考 https://blog.whsir.com/post-2659.html https://www.cnblogs.com/both/p/8875535.html
设置ruby镜像加速
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources -l
至此,重新安装
gem install redis
8.Ruby安装完成之后,我们开始启动6个节点
ok,6个节点都已经正常启动。
9.开始创建集群
创建新集群命令:命令create,选项--replicas 1
意味着我们希望每个创建的主服务器都有一个从服 其他参数是我要用于创建新集群的实例的地址列表。主要是分配主从和槽位数
./src/redis-trib.rb create --replicas 1 172.27.0.13:12301 172.27.0.13:12302 172.27.0.13:12303 172.27.0.13:12304 172.27.0.13:12305 172.27.0.13:12306
控制台信息显示: 当前集群中存在3个主节点和3个从节点,说明我们的集群已经搭建成功
至此,Redis Cluster集群就搭建完成了!
Tips :
1. 如果想重新创建集群,需要登录到每个节点,执行flushdb,然后执行cluster reset,重启节点;
2. 如果要批量杀掉Redis进程,可以使用pkill redis-server命令;
3. 如果redis开启了密码认证,则需要在redis.conf中增加属性 : masterauth yourpassword ,并且需要修改/usr/local/share/gems/gems/redis-3.3.3/lib/redis目录下的client.rb文件,将password属性设置为redis.conf中的requirepass的值,不同的操作系统client.rb的位置可能不一样,可以使用 find / -name "client.rb"全盘查找一下;
4. Redis开启密码认证后,在集群操作时问题会比较多,因此建议不要开启密码认证,搭配使用防火墙保证Redis的安全。
5. 如果要批量启动redis-cluster时,使用下面的shell脚本
#!/bin/bash
REDIS_CLUSTER_HOME=/usr/local/redis-4.0.10/redis-cluster
redis-server ${REDIS_CLUSTER_HOME}/12301/redis.conf
redis-server ${REDIS_CLUSTER_HOME}/12302/redis.conf
redis-server ${REDIS_CLUSTER_HOME}/12303/redis.conf
redis-server ${REDIS_CLUSTER_HOME}/12304/redis.conf
redis-server ${REDIS_CLUSTER_HOME}/12305/redis.conf
redis-server ${REDIS_CLUSTER_HOME}/12306/redis.conf
#查看redis进程
ps -ef|grep redis|grep -v grep
10.集群测试
集群客户端连接方式 redis-cli -c