个人随笔
目录
Redis6.0.5集群环境搭建(不用ruby版)
2020-07-06 22:49:09

在上一篇笔记中,我们已经搭建好了单机版的redis环境,也是这篇笔记的基础,大家有需要的可以取看一下,只是最简单的下载配置而已:Redis环境搭建。这篇笔记我们要来搭建一个redis的集群,在redis5.0之后将ruby整合到redis-cli内,使集群的搭建进一步简化。下面开始搭建。

环境

CentOS7,redis6.0.5

一、搭建

这一篇笔记是基于我上一篇笔记来写的,所以单机版的redis已经搭建好了。我这里是有两台服务器,当然是两台虚拟机,分别是:

192.168.157.6
192.168.157.7

打算在6上部署三个节点,在7上也部署三个节点,实现三主三从的模式,ip端口如下。

192.168.157.6:7000
192.168.157.6:7001
192.168.157.6:7002
192.168.157.7:7003
192.168.157.7:7004
192.168.157.7:7005

1、创建redis_cluster 目录

登录到192.168.157.6

  1. cd /usr/local/redis
  2. mkdir redis_cluster

2、创建节点目录

  1. cd redis_cluster/
  2. mkdir 7000 7001 7002

3、建立配置文件

在7000,7001,7002建立redis的配置文件redis.conf,内容如下

  1. #端口7000,7002,7003
  2. port 7000
  3. #改为其他节点机器可访问的ip 可以使用ifconfig查看一下
  4. bind 192.168.157.6
  5. #redis后台运行
  6. daemonize yes
  7. #aof日志开启 有需要就开启,它会每次写操作都记录一条日志
  8. appendonly yes
  9. #pidfile文件对应7000,7001,7002
  10. pidfile /var/run/redis_7000.pid
  11. #开启集群
  12. cluster-enabled yes
  13. #集群的配置 配置文件首次启动自动生成 7000,7001,7002
  14. cluster-config-file nodes_7000.conf
  15. #请求超时 默认15秒,可自行修改
  16. cluster-node-timeout 15000

每个节点修改对应的端口号。

4、登录到另一台机器,做同样的操作

只不过目录为7003,7004,7005,配置文件也对应修改。

5、启动各个节点

在 192.168.157.6上执行

  1. cd /usr/local/redis/src
  2. redis-server ../redis_cluster/7000/redis.conf
  3. redis-server ../redis_cluster/7001/redis.conf
  4. redis-server ../redis_cluster/7002/redis.conf

在 192.168.157.7上执行

  1. cd /usr/local/redis/src
  2. redis-server ../redis_cluster/7003/redis.conf
  3. redis-server ../redis_cluster/7004/redis.conf
  4. redis-server ../redis_cluster/7005/redis.conf

6、检查是否启动成功

  1. [root@linux6 src]# ps -ef|grep redis
  2. root 9374 1 0 05:52 ? 00:00:00 redis-server 192.168.157.6:7000 [cluster]
  3. root 9379 1 0 05:52 ? 00:00:00 redis-server 192.168.157.6:7001 [cluster]
  4. root 9384 1 0 05:52 ? 00:00:00 redis-server 192.168.157.6:7002 [cluster]
  5. root 9390 8483 0 05:57 pts/0 00:00:00 grep --color=auto redis
  1. [root@linux7 src]# ps -ef|grep redis
  2. root 8889 1 0 05:53 ? 00:00:00 redis-server 192.168.157.7:7003 [cluster]
  3. root 8894 1 0 05:53 ? 00:00:00 redis-server 192.168.157.7:7004 [cluster]
  4. root 8899 1 0 05:53 ? 00:00:00 redis-server 192.168.157.7:7005 [cluster]
  5. root 8904 8085 0 05:57 pts/0 00:00:00 grep --color=auto redis
  1. [root@linux6 src]# netstat -tnlp | grep redis
  2. tcp 0 0 192.168.157.6:17000 0.0.0.0:* LISTEN 9374/redis-server 1
  3. tcp 0 0 192.168.157.6:17001 0.0.0.0:* LISTEN 9379/redis-server 1
  4. tcp 0 0 192.168.157.6:17002 0.0.0.0:* LISTEN 9384/redis-server 1
  5. tcp 0 0 192.168.157.6:7000 0.0.0.0:* LISTEN 9374/redis-server 1
  6. tcp 0 0 192.168.157.6:7001 0.0.0.0:* LISTEN 9379/redis-server 1
  7. tcp 0 0 192.168.157.6:7002 0.0.0.0:* LISTEN 9384/redis-server 1
  1. [root@linux7 src]# netstat -tnlp | grep redis
  2. tcp 0 0 192.168.157.7:17003 0.0.0.0:* LISTEN 8889/redis-server 1
  3. tcp 0 0 192.168.157.7:17004 0.0.0.0:* LISTEN 8894/redis-server 1
  4. tcp 0 0 192.168.157.7:17005 0.0.0.0:* LISTEN 8899/redis-server 1
  5. tcp 0 0 192.168.157.7:7003 0.0.0.0:* LISTEN 8889/redis-server 1
  6. tcp 0 0 192.168.157.7:7004 0.0.0.0:* LISTEN 8894/redis-server 1
  7. tcp 0 0 192.168.157.7:7005 0.0.0.0:* LISTEN 8899/redis-server 1

7、启动集群

这里不需要用ruby来启动了,在redis5.0之后将ruby整合到redis-cli内。直接执行如下命令即可,若是还用以前的命令启动会提示:

  1. redis-trib.rb create --replicas 1 192.168.157.6:7000 192.168.157.6:7001 192.168.157.6:7002 192.168.157.7:7003 192.168.157.7:7004 192.168.157.7:7005
  1. /usr/bin/env: ruby: 没有那个文件或目录

此时可以先安装ruby

  1. yum install ruby

但是还是会提示:

  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 192.168.157.6:7000 192.168.157.6:7001 192.168.157.6:7002 192.168.157.7:7003 192.168.157.7:7004 192.168.157.7:7005 --cluster-replicas 1
  11. To get help about all subcommands, type:
  12. redis-cli --cluster help

所以这里直接改为如下命令启动即可,完全不需要安装ruby环境:

  1. redis-cli --cluster create 192.168.157.6:7000 192.168.157.6:7001 192.168.157.6:7002 192.168.157.7:7003 192.168.157.7:7004 192.168.157.7:7005 --cluster-replicas 1

不需要手动指定什么主从,redis自己会分配,后面的1表示 从节点个数/主节点个数=1 。

8、集群测试

  1. [root@linux7 src]# redis-cli -h 192.168.157.6 -p 7000
  2. 192.168.157.6:7000> info replication
  3. # Replication
  4. role:master
  5. connected_slaves:1
  6. slave0:ip=192.168.157.7,port=7005,state=online,offset=280,lag=1
  7. master_replid:66adef8fe3a5cbfc46426b3f657ae55f7557682e
  8. master_replid2:0000000000000000000000000000000000000000
  9. master_repl_offset:280
  10. second_repl_offset:-1
  11. repl_backlog_active:1
  12. repl_backlog_size:1048576
  13. repl_backlog_first_byte_offset:1
  14. repl_backlog_histlen:280
  15. 192.168.157.6:7000>

可以看到192.168.157.6:7000是master,有一个从节点是192.168.157.7,port=7005。

设置值

  1. set redis cluster

然后我们连接另一个节点。

  1. [root@linux6 src]# redis-cli -h 192.168.157.7 -p 7003
  2. 192.168.157.7:7003> get redis

提示:(error) MOVED 1151 192.168.157.6:7000

那是因为我们启动客户端的时候没有用集群方式启动,加上参数-c:

  1. [root@linux6 src]# redis-cli -c -h 192.168.157.7 -p 7003
  2. 192.168.157.7:7003> get redis
  3. -> Redirected to slot [1151] located at 192.168.157.6:7000
  4. "cluster"
  5. 192.168.157.6:7000>

完美!

当然如果要删除集群然后重新建立集群的话,就先需要把个src目录下的nodes_port.conf信息删除然后从新执行新建集群的命令即可。

  1. redis-cli --cluster create 192.168.157.6:7000 192.168.157.6:7001 192.168.157.6:7002 192.168.157.7:7003 192.168.157.7:7004 192.168.157.7:7005 --cluster-replicas 1

二、总结

不用ruby真的太爽了,用ruby贼麻烦,要安装各种各样的环境,早百年之前就不爽这个设定!

 2030

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2