Centos7安装Redis(集群模式)

环境:centos7.6 redis4.0
模拟在一个Centos7下安装6个redis实例搭建集群 3主3从

安装wget
yum -y install wget

安装gcc
yum -y install gcc automake autoconf libtool make

下载redis
cd /usr/local/software
wget http://download.redis.io/releases/redis-4.0.0.tar.gz

解压
tar -xzvf redis-4.0.0.tar.gz

切换至程序目录
cd redis-4.0.0

执行make编译Redis:
make MALLOC=libc
注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel。

安装Redis:
make install


--------------------
计划集群中 Redis 节点的端口号为 7001-7006 ,端口号即集群下各实例文件夹。数据存放在 端口号/data 文件夹中,日志存放在 端口号/log 文件夹中
cd /usr/local/software
mkdir redis-cluster
cd redis-cluster
mkdir -p 7001/data 7002/data 7003/data 7004/data 7005/data 7006/data
mkdir -p 7001/log 7002/log 7003/log 7004/log 7005/log 7006/log

把安装好的Redis的redis.conf 拷贝到这6个端口目录中
cd redis-4.0.0
cp redis.conf /usr/local/software/redis_cluster/7001
cp redis.conf /usr/local/software/redis_cluster/7002
cp redis.conf /usr/local/software/redis_cluster/7003
cp redis.conf /usr/local/software/redis_cluster/7004
cp redis.conf /usr/local/software/redis_cluster/7005
cp redis.conf /usr/local/software/redis_cluster/7006

修改各个端口的redis配置内容如下,以7001为例

扫描二维码关注公众号,回复: 7113694 查看本文章
#端口号
port 7001 
#默认ip为127.0.0.1 需要改为其他节点机器可访问的ip(本机ip) 否则创建集群时无法访问对应的端口,无法创建集群 
bind 192.168.182.129
#数据文件存放位置
dir /usr/local/software/redis-cluster/7001/data/
#日志文件存放位置
logfile /usr/local/software/redis-cluster/7001/log/redis.log
#redis后台运行 
daemonize yes
#为保证redis-trib.rb工具的正常运行,需要设置为no,完成后可以改回yes,但每次使用redis-trib.rb都需要改回为no
protected-mode no
#pidfile文件 
pidfile /var/run/redis_7001.pid 
#开启集群 
cluster-enabled yes 
#集群的配置 配置文件首次启动自动生成
cluster-config-file nodes_7001.conf 
#请求超时 默认15秒,可自行设置 
cluster-node-timeout 15000 
#rdb文件名
dbfilename dump-7001.rdb
#aof日志开启 有需要就开启,它会每次写操作都记录一条日志 
appendonly yes 
#aof文件名 
appendfilename "appendonly-7001.aof"
#设置密码
masterauth 123456 
requirepass 123456


注意:各个节点密码都必须一致,否则Redirected就会失败


在redis-cluster 下创建 bin 文件夹,用来存放集群运行脚本,并把安装好的 Redis 的 src 路径下的运行脚本拷贝过来
cd /usr/local/software/redis_cluster
mkdir bin
cd /usr/local/software/redis-4.0.0
cp -r src/* /usr/local/software/redis-cluster/bin/

启动节点
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7001/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7002/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7003/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7004/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7005/redis.conf
/usr/local/software/redis-cluster/bin/redis-server /usr/local/software/redis-cluster/7006/redis.conf

可以检查一下6个节点是否启动成功:ps -ef | grep redis


创建集群

由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

在执行gem install redis时
如果提示:
gem install redis
ERROR: Error installing redis:
redis requires Ruby version >= 2.3.0

原因,ruby版本小于了2.3.0

安装RVM
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L https://get.rvm.io | bash -s stable
find / -name rvm -print

source /usr/local/rvm/scripts/rvm

查看rvm库中已知的ruby版本
rvm list known

根据列表显示 选择一个高版本安装
rvm install 2.5.5

使用一个ruby版本
rvm use 2.5.5

设置默认版本
rvm use 2.5.5 --default

查看ruby版本
ruby --version

继续执行安装redis
gem install redis


Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中
上面已经将它复制到 /usr/local/software/redis_cluster/bin 目录中,可以直接在命令行中使用了
/usr/local/software/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.182.129:7001 192.168.182.129:7002 192.168.182.129:7003 192.168.182.129:7004 192.168.182.129:7005 192.168.182.129:7006

节点设置密码之后如果需要使用redis-trib.rb的各种命令
则会报错 Sorry, can’t connect to node

解决方法:找到client.rb 然后修改默认password为上面设置的密码
client.rb路径可以通过find命令查找:
find / -name 'client.rb'
类似/usr/local/rvm/gems/ruby-2.5.5/gems/redis-4.1.2/lib/redis/client.rb

执行过程中,可能需要输入 yes
从屏幕输出,可以很容易地看出哪些是主(master)节点,哪些是从(slave)节点

--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小

验证是否成功安装好集群
通过客户端命令连接上,通过集群命令看一下状态和节点信息
/usr/local/software/redis-cluster/bin/redis-cli -c -h 192.168.182.129 -p 7001 -a 123456
cluster info
cluster nodes
设置一个key值
set key1 value1
keys *
get key1

然后登录另外一个实例
/usr/local/software/redis-cluster/bin/redis-cli -c -h 192.168.182.129 -p 7002 -a 123456
get key1
如果返回value1,说明集群运作正常

猜你喜欢

转载自www.cnblogs.com/zengnansheng/p/11421436.html