Linux下Redis的集群部署

一、Redis的单机安装

    由于本人是在线安装,此处只简单介绍在线安装的简要步骤。

(1) 安装Redis需要依托GCC环境,先检查Linux是否已经安装了GCC,如果没有安装,则需要进行安装。

// 查看是否已安装gcc
gcc -v
// 安装gcc命令
yum install gcc-c++

(2)安装Ruby和Rubygems

// 安装Ruby
yum install ruby

在安装Rubygems的时候,提示以下信息。所以没有再另外安装Rubygems

Package rubygems-2.0.14.1-34.el7_6.noarch already installed and latest version

(3)安装Redis

// 获取安装包
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
// 解压缩
$ tar xzf redis-5.0.3.tar.gz
$ cd redis-5.0.3
// 安装Redis
$ make

(4)验证Redis的安装

// 进入Redis的安装目录
cd /usr/local/bin
// 查看文件
dir
// 结果如下:
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

(5) 启动Redis

// 进入redis的解压缩目录
cd /usr/redis/redis-5.0.3
// 启动Redis
redis-server redis.conf

二、Redis的集群部署

(1) 本人设置的是6个节点的Redis作为集群,因此需要创建6个文件夹,端口号分别设置为:6001~6006

// 进入redis-5.0.3的父节点
cd /usr/redis
// 新建6个文件夹
mkdir redis600{1,2,3,4,5,6}

(2) 进入Redis的安装目录,将redis-cli、redis-server分别复制到上述创建的文件夹中

// 进入Redis的安装目录
cd /usr/local/bin
// 复制文件到创建的6个文件夹
cp redis-cli redis-server /usr/redis/redis6001
cp redis-cli redis-server /usr/redis/redis6002
cp redis-cli redis-server /usr/redis/redis6003
cp redis-cli redis-server /usr/redis/redis6004
cp redis-cli redis-server /usr/redis/redis6005
cp redis-cli redis-server /usr/redis/redis6006

(3)在每个文件夹下新建一个redis.conf文件,文件内容为:

port 6001 // 端口号
appendonly yes  
cluster-enabled yes 允许集群
cluster-config-file "node.conf" // 集群配置文件
cluster-node-timeout 5000  // 节点超时时间
daemonize yes // 后台运行
masterauth  *********  // 主节点权限
requirepass *********  // 密码,节点密码保持一致
bind *****   访问ip

(4) 配置Redis的批量启动文件

扫描二维码关注公众号,回复: 4572124 查看本文章
cd redis6001
./redis-server redis.conf
cd ..
cd redis6002
./redis-server redis.conf
cd ..
cd redis6003
./redis-server redis.conf
cd ..
cd redis6004
./redis-server redis.conf
cd ..
cd redis6005
./redis-server redis.conf
cd ..
cd redis6006
./redis-server redis.conf

(5) 查看Redis运行状态

netstat -tnulp | grep redis
// 或者
ps  aux | grep redis

(6) 进入redis6001执行集群命令

./redis-cli --cluster create IP:6001 IP:6002 IP:6003 IP:6004 IP:6005 IP:6006 --cluster-replicas 1

可能很多文章里面是使用以下命令进行集群配置

./redis-trib.rb  create --replicas  1  127.0.0.1:6001  127.0.0.1:6002  127.0.0.1:6003  127.0.0.1:6004  127.0.0.1:6005  127.0.0.1:6006

但是执行该命令时,会提示该命令已不适用:

WARNING: redis-trib.rb is not longer available!
You should use redis-cli instead.
All commands and features belonging to redis-trib.rb have been moved
to redis-cli.
In order to use them you should call redis-cli with the --cluster
option followed by the subcommand name, arguments and options.
Use the following syntax:
redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]
Example:
redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1
To get help about all subcommands, type:
redis-cli --cluster help

(7) 批量启动集群Redis服务

sh -x startall.sh

(8)连接redis服务

  连接集群不能使用 redis-cli -h 127.0.0.1 -p 6001 -a ******命令,此时获取其他节点的数据时会出现问题。例如:

// 连接集群不能使用 
redis-cli -h 127.0.0.1 -p 6001 -a ******

-127.0.0.1:6001> keys *
1) "mylist"
2) "birthday"
3) "sex"
-127.0.0.1:6001> get name
(error) MOVED 5798 127.0.0.1:6002
-127.0.0.1:6001> get sex
"male"

此时只能获取本节点下存储的内容,其他节点存储的内容将无法获取。

(9) 集群连接方式

redis-cli -c -h 127.0.0.1 -p 6001 -a *****

127.0.0.1:6001> keys *
1) "mylist"
2) "birthday"
3) "sex"
127.0.0.1:6001> get name
-> Redirected to slot [5798] located at 127.0.0.1:6002
"nsk"

此时,可以正常获取其他节点上的内容了,哈哈

猜你喜欢

转载自blog.csdn.net/m_sophia/article/details/85040285