1.获取redis资源
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
2.解压
tar xzvf redis-4.0.8.tar.gz
3.安装
cd redis-4.0.8
make
cd src
make install PREFIX=/usr/local/redis
4.环境准备
yum install -y wget gcc
systemctl stop firewalld.service
systemctl disable firewalld.service
5.编译
cd /usr/local/redis
make MALLOC=libc
make install
以上如在make时报错可使用如下命令来解决, 根据报错类型不同, 选择安装以下包:
yum install -y gcc
yum install -y tcl
如果没有etc目录
mkdir /usr/local/redis/etc
切换到解压的redis 路径下执行
cp redis.conf /usr/local/redis/etc
6.配置redis为后台启动
vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes
7.将redis加入到开机启动
vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)
8.开启redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
(下面要配集群记得关掉)
9.将redis-cli,redis-server拷贝到bin下,让redis-cli指令可以在任意目录下直接使用
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/
10.创建集群文件
mkdir /usr/local/redis-cluster/
mkdir /usr/local/redis-cluster/7001
mkdir /usr/local/redis-cluster/7002
mkdir /usr/local/redis-cluster/7003
mkdir /usr/local/redis-cluster/7004
mkdir /usr/local/redis-cluster/7005
mkdir /usr/local/redis-cluster/7006
mkdir /usr/local/redis-cluster/7001/data
mkdir /usr/local/redis-cluster/7002/data
mkdir /usr/local/redis-cluster/7003/data
mkdir /usr/local/redis-cluster/7004/data
mkdir /usr/local/redis-cluster/7005/data
mkdir /usr/local/redis-cluster/7006/data
11.设置集群各个节点
cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7001
cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7002
cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7003
cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7004
cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7005
cp /usr/local/redis/redis.conf /usr/local/redis-cluster/7006
修改配置文件文件,最小化修改配置
下面为需要修改的配置项以及说明
port 7001 # 客户端连接端口
bind 192.168.220.11 #实例绑定的IP地址
dir /opt/redis/cluster/7001/data # redis实例数据配置存储位置
daemonize yes # 是否以后台进程的方式启动redis实例
pidfile pidfile /var/run/redis_7001.pid # 指定该进程pidfile
cluster-enabled yes # 开启集群模式
cluster-config-file # 集群中该实例的配置文件,该文件会在data目录下生成
appendonly yes # 开启aop日志
protected-mode no # 关闭保护模式
requirepass cyclone # master开启密码保护
masterauth cyclone # replica同master交互密码
这里给大家一个快速配置的连接,下载下来
拷贝一下 要修改端口 ip 等参数 即可
http://39.101.220.192:8090/redis-cluster.rar
12.配Redis启动的环境变量
1.vi /etc/profile
2.然后在文件最后面添加export PATH=$PATH:/path
path 代表安装redis-cli 路径
或者直接把下面两句话贴进去
export REDIS_HOME=/usr/local/redis/
export PATH=$PATH:$REDIS_HOME/src
3.退出(ESC)保存::wq
4.重新加载/etc/profile:#source /etc/profile
13.依次启动redis实例
redis-server /usr/local/redis-cluster/7001/redis.conf
redis-server /usr/local/redis-cluster/7002/redis.conf
redis-server /usr/local/redis-cluster/7003/redis.conf
redis-server /usr/local/redis-cluster/7004/redis.conf
redis-server /usr/local/redis-cluster/7005/redis.conf
redis-server /usr/local/redis-cluster/7006/redis.conf
14.后期可以写成一键起停脚本
shutdown-all.sh
ps -ef | grep redis-server | awk '{print $2}' | xargs kill -9
ps -ef | grep redis
start-all.sh
redis-server /usr/local/redis-cluster/7001/redis.conf
redis-server /usr/local/redis-cluster/7002/redis.conf
redis-server /usr/local/redis-cluster/7003/redis.conf
redis-server /usr/local/redis-cluster/7004/redis.conf
redis-server /usr/local/redis-cluster/7005/redis.conf
redis-server /usr/local/redis-cluster/7006/redis.conf
ps -ef | grep redis-server
给脚本添加权限
chmod +x start-all.sh
chmod +x shutdown-all.sh
ok,至此6个redis节点启动成功,接下来正式开启搭建集群,以上都是准备条件。大家不要觉得图片多看起来冗长所以觉得麻烦,其实以上步骤也就一句话的事情:创建6个redis实例(6个节点)并启动。
要搭建集群的话,需要使用一个工具(脚本文件),这个工具在redis解压文件的源代码里。因为这个工具是一个ruby脚本文件,所以这个工具的运行需要ruby的运行环境,就相当于java语言的运行需要在jvm上。所以需要安装ruby,指令如下
15.安装ruby运行环境
yum install ruby
然后需要把ruby相关的包安装到服务器,我这里用的是redis-3.0.0.gem,大家需要注意的是:redis的版本和ruby包的版本最好保持一致。
我这里有两个下载包,那个都可以用 如何和你的不匹配需要你在官网下载
http://39.101.220.192:8090/redis-4.0.0.gem
http://39.101.220.192:8090/redis-4.1.3.gem
官网:https://rubygems.org/gems/redis/versions
16.安装你选择的安装包
gem install redis-3.0.0.gem
17.上一步中已经把ruby工具所需要的运行环境和ruby包安装好了,接下来需要把这个ruby脚本工具复制到usr/local/redis-cluster目录下即redis/src目录下的redis-trib.rb文件。找到之前解压redis安装包以后的目录执行:
cp redis-trib.rb /usr/local/redis-cluster
18.如果一切顺利然后使用该脚本文件搭建集群,指令如下
./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006
注意:此处大家应该根据自己的服务器ip输入对应的ip地址!
19.中途有个地方需要手动输入yes即可
20.也有不顺利的时候比如无法识别RVM
这就需要通过RVM方式安装管理Ruby
Ruby是一种动态的,面向对象的编程语言,专注于简单性和生产力。RVM(Ruby Version Manager)是一个命令行工具,可以轻松的安装、管理Ruby环境。
当前系统环境Centos7.x
1、安装依赖
yum install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl openssl-devel make bzip2 autoconf automake libtool bison sqlite-devel curl
2、安装RVM
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E37D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L https://get.rvm.io | bash -s stable
3、加载RVM环境
source /etc/profile.d/rvm.sh
rvm reload
4、检查依赖项
rvm requirements run
5、安装Ruby(rvm list known)可以进行版本查看
rvm install 2.6
6、设置默认的Ruby版本
rvm use 2.6 –default
7、验证当前Ruby版本
ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
20.查看当前集群信息
redis-cli -h 43.242.34.164 -c -p 7006
cluster info
cluster nodes
21.常见问题
(1)执行./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006
本节点下的db文件删除。删除nodes.节点
重启继续尝试
如果还不行
进入节点: redis-cli -h 43.242.34.164 -c -p 7006
执行:flushdb
(2) java连接时数据库密码异常
密码设置(推荐)
方式一:修改所有Redis集群中的redis.conf文件加入:
masterauth passwd123
requirepass passwd123
说明:这种方式需要重新启动各节点
注意:本文归作者所有,未经作者允许,不得转载