搭建环境及准备安装包:
redis-4.0.6.tar.gz redis安装包
ruby-2.4.1.tar.gz Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上。)
rubygems-2.7.7.tgz redis-4.0.1.gem (后面的是redis集群需要的ruby插件,rubygems是ruby的一个包管理工具,通过rubygems安装redis-4.0.1.gem)
安装gcc、zlib、openssl
卸载redis
首先把redis-server停了,然后把文件删除就行了.
1、停掉所有redis服务
ps -elf|grep redis
kill -9 [进程号]
2、删除文件
redis会在/usr/local/bin或你指定的目录下产生下面几个文件
redis-benchmark
redis-check-aof
redis-check-dump
redis-cli
redis-server
一、单机redis安装
创建rpm
cd /usr/local/
mkdir rpm
cd rpm
把附件中rpm包上传
rpm -Uvh ./*.rpm --nodeps --force
创建redis
cd /usr/local/
mkdir redis
将redis-4.0.6.tar.gz上传至redis目录下
cd redis
解压
tar -vxf redis-4.0.6.tar.gz
编译文件
cd /usr/local/redis/redis-4.0.6
make
成功如下:
安装
进入到/usr/local/redis/redis-4.0.6/src下查看文件是否生成redis-server和redis-cli
cd /usr/local/redis/redis-4.0.6/src
make install
成功如下:
建立俩个文件夹存放redis命令和配置文件
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/bin
把redis-4.0.6下的redis.conf复制到/usr/local/redis/etc/
cd /usr/local/redis/redis-4.0.6
cp redis.conf /usr/local/redis/etc/
移动redis-4.0.6/src里的几个文件到/usr/local/redis/bin/
cd /usr/local/redis/redis-4.0.6/src
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-check-rdb redis-server /usr/local/redis/bin/
先改redis.conf
cd /usr/local/redis/etc
vi redis.conf
daemonize yes 修改这项为yes
启动并指定配置文件
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
查看状态
ps -ef |grep redis
简单检测
cd /usr/local/redis/bin
./redis-cli
退出客户端
quit(exit)
退出redis服务
1.pkill redis-server
2.kill 进程号
3./usr/local/redis/bin/redis-cli shutdown
二、集群搭建
创建文件夹并在其下创建2个文件夹
mkdir -p /usr/local/redis-cluster
mkdir 7001 7002
把之前的redis.conf 配置文件copy到7001下,修改如下内容
cd /usr/local/redis/
cp etc/redis.conf ../redis-cluster/7001
cp etc/redis.conf ../redis-cluster/7002
进入7001
cd /usr/local/redis-cluster/7001
vi redis.conf
使用/命令搜索 例如: /port
daemonize yes #redis后台运行
port 7001 #端口7001 7002 7003 7004 7005 7006
bind 192.168.50.140 #默认ip为127.0.0.1 需要改为其他节点机器可访问的ip
否则创建集群时无法访问对应的端口,无法创建集群
dir /usr/local/redis-cluster/7001 #数据文件存放位置对应7001 7002 7003 7004 7005 7006
设为如下:
cluster-enabled yes #开启集群
cluster-config-file nodes-7001.conf (nodes-7001最好跟portxxx对应上) #集群配置信息,开启集群后自动生成
appendonly yes #开启aof日志,它会每次写操作都记录一条日志
cluster-node-timeout 15000 #请求超时时长
把修改后的配置文件分别copy到各个文件夹下,注意修改端口号,可以批量替换
cp redis.conf ../7002
批量修改
:%s/源字符串/目的字符串/g
:%s/7001/7002/g
提示3行修改
这时是可以启动redis的
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf
查看状态
ps -ef |grep redis
查看防火墙状态:
systemctl status firewalld
开启状态:
然后开启端口号:
firewall-cmd --permanent --zone=public --add-port=7001/tcp
firewall-cmd --permanent --zone=public --add-port=17001/tcp
firewall-cmd --permanent --zone=public --add-port=7002/tcp
firewall-cmd --permanent --zone=public --add-port=17002/tcp
然后重启防火墙:
systemctl restart firewalld
其他两台重复以上操作
安装ruby就是为了安装redis gem,而redis gem 是为了能运行redis-trib.rb
redis安装目录src中redis-trib.rb完成集群创建,redis-trib.rb命令需要安装gem redis模块才能运行,gem redis需要Ruby环境
1. Ruby离线安装
放入文件
cd /usr/local
mkdir ruby
cd ruby
把ruby-2.4.1.tar.gz包上传
tar -zxvf ruby-2.4.1.tar.gz
cd ruby-2.4.1
./configure --prefix=/usr/local/ruby -prefix是将ruby安装到指定目录,也可以自定义
成功如下:
make && make install
成功如下:
这时用ruby命令是会报错的
创建软连接
ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
查看版本信息
ruby -v
2.安装rubygems
首先下载安装包:https://rubygems.org/pages/download(包中已有)
cd /usr/local/
mkdir rubygems
把文件放到该目录下
tar -zxvf rubygems-2.7.7.tgz
cd rubygems-2.7.7
ruby setup.rb
成功如下:
创建软连接gem
ln -s /usr/local/ruby/bin/gem /usr/bin/gem
3.安装ruby-redis插件
cd /usr/local/redis
把文件redis-4.0.1.gem放到该目录下
gem install redis-4.0.1.gem
成功如下:
启动一个集群
位置为
pwd
/usr/local/redis/redis-4.0.6/src
创建新集群命令:命令create,选项--replicas 1意味着我们希望每个创建的主服务器都有一个从服 其他参数是我要用于创建新集群的实例的地址列表。
./redis-trib.rb create --replicas 1 192.168.0.115:7001 192.168.0.115:7002 192.168.0.115:7003 192.168.0.115:7004 192.168.0.115:7005 192.168.0.115:7006
按这个排masters和slave 同意时yes确定 如下:
成功如下:
连接集群:
redis-cli -c -h 192.168.50.169 -p 7001 -c表示集群模式,指定ip地址和端口号
如:/usr/local/redis/bin/redis-cli -c -h 192.168.50.169 -p 7001
集群测试
cluster info 查看集群信息
cluster nodes(查看节点列表)
简单调试:可在各个服务器随便设值
在192.168.50.141 中设值如下:
在192.168.50.143 中设值如下:
在192.168.50.140 中设值如下:
然后用RedisDesktopManager连接后可显示如下:
关闭时逐个关闭
/usr/local/redis/bin/redis-cli -c -h 192.168.50.140 -p 7001 shutdown
/usr/local/redis/bin/redis-cli -c -h 192.168.50.140 -p 7002 shutdown
/usr/local/redis/bin/redis-cli -c -h 192.168.50.141 -p 7003 shutdown
/usr/local/redis/bin/redis-cli -c -h 192.168.50.141 -p 7004 shutdown
/usr/local/redis/bin/redis-cli -c -h 192.168.50.143 -p 7005 shutdown
/usr/local/redis/bin/redis-cli -c -h 192.168.50.143 -p 7006 shutdown
添加密码
Redis-trib.rb工具构建的集群:
1,如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
2,如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志
3,各个节点的密码都必须一致,否则Redirected就会失败
步骤为:
/usr/local/redis/bin/redis-cli -c -h 192.168.0.115 -p 7001
config set masterauth passwdAb135790
config set requirepass passwdAb135790
auth passwdAb135790
config rewrite
exit
需要每个节点都设置密码并且保证一致
后边就不在截屏了!需要每个节点都设置密码并且保证一致
cd /usr/local/redis/redis-4.0.6/src
./redis-trib.rb check 192.168.0.115:7001 用check:检查集群时报错
find / -name 'client.rb' 查找client.rb
vi /usr/local/ruby/lib/ruby/gems/2.4.0/gems/redis-4.0.1/lib/redis/client.rb
修改password
记得加 ” ” 双引号,不然会报错!
如下图:
./redis-trib.rb check 192.168.50.168:7005
直接进入时报错需要输入密码:
进入的时候直接加上密码:
/usr/local/redis/bin/redis-cli -c -h 192.168.50.226 -p 7001 -a passwd123456
关闭时也需要加上密码:
/usr/local/redis/bin/redis-cli -c -h 192.168.50.226 -p 7001 -a passwd123456 shutdown