redis集群搭建

[TOC]

1. 准备

1.1. 基础环境

1.1.1. 拉取centos镜像

1
docker pull centos:latest

1.1.2. 运行容器

1
docker run -d -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 -p 7006:7006 -p 7007:7007 --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup --name redis-cluster centos:latest /usr/sbin/init

1.1.3. 进入容器

1
docker exec -it redis-cluster /bin/bash

1.1.4. 安装gcc

1
yum install -y gcc

1.1.5. 安装curl

1
yum install -y curl which

1.1.6. 安装wget

1
yum install -y wget

1.1.7. 安装make

1
yum install -y make

1.1.8. 安装ruby

1
yum -y install ruby ruby-devel rubygems rpm-build

1.1.9. 安装ruby-redis插件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
使用rvm安装ruby

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL https://get.rvm.io | bash -s stable

把rvm/bin加到path中
PATH=$PATH:/usr/local/rvm/bin

安装2.6版本ruby
rvm install 2.6

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

检查ruby版本
ruby -v

最后再执行
gem install redis

1.1.10. 下载redis文件

1
2
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -xvf redis-3.2.4.tar.gz

2. 安装

2.1. 编译

1
2
3
cd redis-3.2.4
make
make install

2.2. 复制redis-7001、redis-7002

2.3. 配置redis-conf、redis-conf …

按照下面的配置信息,分别配置redis-7001.conf、redis-7002.conf、redis-7003.conf、redis-7004.conf、redis-7005.conf、redis-7006.conf

1
2
3
4
5
6
7
8
9
10
port  7001                                                
daemonize yes //redis后台运行
bind *
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志 
protected-mode no
notify-keyspace-events Egx

2.4. 编写启动、停止脚本

2.4.1. 启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vi start.sh

cd /soft/redis-cluster/redis-7001/src
./redis-server /soft/redis-cluster/redis-7001.conf
cd /soft/redis-cluster/redis-7002/src
./redis-server /soft/redis-cluster/redis-7002.conf
cd /soft/redis-cluster/redis-7003/src
./redis-server /soft/redis-cluster/redis-7003.conf
cd /soft/redis-cluster/redis-7004/src
./redis-server /soft/redis-cluster/redis-7004.conf
cd /soft/redis-cluster/redis-7005/src
./redis-server /soft/redis-cluster/redis-7005.conf
cd /soft/redis-cluster/redis-7006/src
./redis-server /soft/redis-cluster/redis-7006.conf

2.4.2. 停止脚本

1
2
3
4
5
6
7
8
9
vi stop.sh

cd /soft/redis-cluster/redis-7001/src
./redis-cli -h 127.0.0.1 -p 7001 shutdown
./redis-cli -h 127.0.0.1 -p 7002 shutdown
./redis-cli -h 127.0.0.1 -p 7003 shutdown
./redis-cli -h 127.0.0.1 -p 7004 shutdown
./redis-cli -h 127.0.0.1 -p 7005 shutdown
./redis-cli -h 127.0.0.1 -p 7006 shutdown

2.5. 集群搭建

2.6. redis-trib.rb命令

此命令在src下。

1
2
cd redis-3.2.4/src
cp redis-trib.rb /soft/redis-cluster/redis-trib.rb
1
./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

3. 连接到集群

3.1. 使用redis-cli 连接到集群

1
2
3
4
cd redis-3.2.4/src
./redis-cli -h 127.0.0.1 -p 7001 -c

注意最后面的-c,表示使用连接到集群节点,否则连接到单独的redis

3.2. redis cluster常用命令

3.2.1. cluster info

打印集群的信息

3.2.2. cluster nodes

列出集群当前已知的所有节点(node),以及这些节点的相关信息,可以查看哪些节点是master,哪些是slave

sintang wechat
欢迎订阅我的知识星球和微信公众号