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
// 不执行的化,redis-server redis.conf不会执行
$ make install
(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的批量启动文件
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"
此时,可以正常获取其他节点上的内容了,哈哈
还没有评论,来说两句吧...