Linux下Redis的集群部署

我不是女神ヾ 2022-04-04 10:53 327阅读 0赞

一、Redis的单机安装

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

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

  1. // 查看是否已安装gcc
  2. gcc -v
  3. // 安装gcc命令
  4. yum install gcc-c++

(2)安装Ruby和Rubygems

  1. // 安装Ruby
  2. yum install ruby

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

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

(3)安装Redis

  1. // 获取安装包
  2. $ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
  3. // 解压缩
  4. $ tar xzf redis-5.0.3.tar.gz
  5. $ cd redis-5.0.3
  6. // 安装Redis
  7. $ make
  8. // 不执行的化,redis-server redis.conf不会执行
  9. $ make install

(4)验证Redis的安装

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

(5) 启动Redis

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

二、Redis的集群部署

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

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

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

  1. // 进入Redis的安装目录
  2. cd /usr/local/bin
  3. // 复制文件到创建的6个文件夹
  4. cp redis-cli redis-server /usr/redis/redis6001
  5. cp redis-cli redis-server /usr/redis/redis6002
  6. cp redis-cli redis-server /usr/redis/redis6003
  7. cp redis-cli redis-server /usr/redis/redis6004
  8. cp redis-cli redis-server /usr/redis/redis6005
  9. cp redis-cli redis-server /usr/redis/redis6006

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

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

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

  1. cd redis6001
  2. ./redis-server redis.conf
  3. cd ..
  4. cd redis6002
  5. ./redis-server redis.conf
  6. cd ..
  7. cd redis6003
  8. ./redis-server redis.conf
  9. cd ..
  10. cd redis6004
  11. ./redis-server redis.conf
  12. cd ..
  13. cd redis6005
  14. ./redis-server redis.conf
  15. cd ..
  16. cd redis6006
  17. ./redis-server redis.conf

(5) 查看Redis运行状态

  1. netstat -tnulp | grep redis
  2. // 或者
  3. ps aux | grep redis

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

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

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

  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

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

  1. WARNING: redis-trib.rb is not longer available!
  2. You should use redis-cli instead.
  3. All commands and features belonging to redis-trib.rb have been moved
  4. to redis-cli.
  5. In order to use them you should call redis-cli with the --cluster
  6. option followed by the subcommand name, arguments and options.
  7. Use the following syntax:
  8. redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]
  9. Example:
  10. 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
  11. To get help about all subcommands, type:
  12. redis-cli --cluster help

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

  1. sh -x startall.sh

(8)连接redis服务

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

  1. // 连接集群不能使用
  2. redis-cli -h 127.0.0.1 -p 6001 -a ******
  3. -127.0.0.1:6001> keys *
  4. 1) "mylist"
  5. 2) "birthday"
  6. 3) "sex"
  7. -127.0.0.1:6001> get name
  8. (error) MOVED 5798 127.0.0.1:6002
  9. -127.0.0.1:6001> get sex
  10. "male"

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

(9) 集群连接方式

  1. redis-cli -c -h 127.0.0.1 -p 6001 -a *****
  2. 127.0.0.1:6001> keys *
  3. 1) "mylist"
  4. 2) "birthday"
  5. 3) "sex"
  6. 127.0.0.1:6001> get name
  7. -> Redirected to slot [5798] located at 127.0.0.1:6002
  8. "nsk"

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

发表评论

表情:
评论列表 (有 0 条评论,327人围观)

还没有评论,来说两句吧...

相关阅读