可参考 http://www.cnblogs.com/frankdeng/p/9332618.html
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
安装完成后,在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
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和RubyGems,因此我们要先安装一下
#版本低,可不用 卸载 yum remove ruby -y
yum install ruby -y
yum install rubygems -y
gem install redis时报错https://blog.whsir.com/post-2659.html
设置ruby镜像加速
至此,重新安装
gem install redis --version 4.0.10
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的安全。
10.集群测试
集群客户端连接方式 redis-cli -c