目录:
- 一、集群架构
- 二、安装redis
- 三、安装ruby
- 四、启动redis
- 五、创建集群
- 1、将redis源码src下面的redis-trib.rb复制到/usr/local/redis4/bin目录里面,每台机器都复制一份
- 2、在任何一台机器上进入到/usr/local/redis4/bin目录里,使用ruby脚本创建redis集群
- 六、异常排查
-
- 1、 确保redis中没有数据,对每个redis实例,用redis-cli连接,使用命令flushdb,清除数据
- 2、 启动ruby脚本后,若创建集群失败,则必须将所有的redis服务全部停掉,先查看redis的进程id,可以查看指定的pidfile查看进程id也可以使用命令lsof -i:redis端口号查看进程,也可以使用ps -ef | grep redis 来查看进程id,然后使用kill -9 杀死该进程,就关闭了redis实例。
- 3、 ruby脚本启动失败后除了要杀死每台机器上的redis进程外,还需要将其生成的集群元数据文件和日志文件删除,即删除你在redis.conf中配置的两个文件
- 4、 清redis数据,关闭redis,清理元数据nodes*.conf文件,集群日志文件*.aof,这些都做完后,再重启每台机器上的redis,然后再启动ruby脚本,重新创建集群!
-
- 七、验证集群
- 八、为集群设置密码
一、集群架构
1、主机架构
6台主机,Linux系统6.8
2、主从架构
3个master,3个slave
二、安装redis
1、下载源码
进入下载目录,使用weget下载
cd /usr/local
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
解压,进入解压后的目录
tar -xzvf redis-4.0.9.tar.gz
cd redis-4.0.9
2、编译
创建编译后的文件存放的文件夹,编译后的文件将存放在redis4文件夹中
mkdir -r /usr/local/redis4
make PREFIX=/usr/local/redis4 install
编译完成,进入redis4文件夹里的bin文件夹查看有如下几个文件:
3、添加环境变量
将编译后的redis的bin目录添加到环境变量中
vim /etc/profile
4、修改配置文件
从redis源码src里面复制一份redis.conf到/usr/local/redis4下面,修改配置文件如下:
三、安装ruby
1、删除旧版本
最新redis要求ruby版本在2.2以上,系统自带ruby大部分都低于2.2,输入以下命令,删除旧版本:
yum remove ruby
2、安装ruby依赖
yum install zlib
3、安装ruby2.5
3.1、下载最新版ruby,输入以下命令
cd /usr/local
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz
3.2、解压编译到指定文件夹
tar -xzvf ruby-2.5.0.tar.gz
mkdir -r /usr/local/ruby2.5
cd ruby-2.5.0
./configure -prefix=/usr/local/ruby2.5
make && make install
3.3、配置环境变量
注意将ruby环境变量配置到path的最前面!
vim /etc/profile
3.4、查看ruby是否安装成功
ruby -v
4、使用gem安装ruby的redis依赖包
gem install redis
四、启动redis
在每台机器上启动redis
cd /usr/local/redis4
redis-server redis.conf
使用命令查看是否启动成功
ps -ef | grep redis
五、创建集群
1、将redis源码src下面的redis-trib.rb复制到/usr/local/redis4/bin目录里面,每台机器都复制一份
2、在任何一台机器上进入到/usr/local/redis4/bin目录里,使用ruby脚本创建redis集群
cd /usr/local/redis4/bin
redis-trib.rb create --replicas 1 mini1:6001 mini2:6002 mini3:6003 mini4:6004 mini5:6005 mini6:6006
注意:mini1 mini2 …都已经在/etc/hosts文件中做了映射,因此可以直接写主机名,若没有映射,则必须写IP地址
六、异常排查
1、 确保redis中没有数据,对每个redis实例,用redis-cli连接,使用命令flushdb,清除数据
2、 启动ruby脚本后,若创建集群失败,则必须将所有的redis服务全部停掉,先查看redis的进程id,可以查看指定的pidfile查看进程id也可以使用命令lsof -i:redis端口号查看进程,也可以使用ps -ef | grep redis 来查看进程id,然后使用kill -9 杀死该进程,就关闭了redis实例。
3、 ruby脚本启动失败后除了要杀死每台机器上的redis进程外,还需要将其生成的集群元数据文件和日志文件删除,即删除你在redis.conf中配置的两个文件
一个是:cluster-config-file /usr/local/redis4/nodes-6001.conf
另一个是打开 appendonly yes 后生成的日志文件,在启动目录上一层目录下面的.aof文件,我的在/usr/local/redis4文件夹里
4、 清redis数据,关闭redis,清理元数据nodes*.conf文件,集群日志文件*.aof,这些都做完后,再重启每台机器上的redis,然后再启动ruby脚本,重新创建集群!
如果还是报错,或则找不到目标主机,则使用ip代替主机名,然后换一台机器启动ruby脚本,基本上就没问题了!
七、验证集群
1、登陆集群,使用-c 标识表示登陆集群
redis-cli -h mini1 -c -p 6001
八、为集群设置密码
1、通过redis-cli 连接到集群上的每一个节点,执行如下命令,masterauth和require pass密码一致,节点与节点间也完全相同
config set masterauth passwd123
config set requirepass passwd123
config rewrite
2、找到每个机器上ruby安装目录下的gem包下的client.rb文件,可以使用命令查找:
find / -name "client.rb"
3、编辑client.rb文件,将password修改为自己设置的密码
class Client
DEFAULTS = {
:url => lambda { ENV["REDIS_URL"] },
:scheme => "redis",
:host => "127.0.0.1",
:port => 6379,
:path => nil,
:timeout => 5.0,
:password => "passwd123",
:db => 0,
:driver => nil,
:id => nil,
:tcp_keepalive => 0,
:reconnect_attempts => 1,
:inherit_socket => false
}