Redis Cluster搭建(单机搭建)

Redis Cluster搭建

本文记录单机搭建Redis Cluster的过程,采用一主二从的方式搭建集群。

环境及Redis版本

  • 系统版本(通过WSL2安装):SUSE Linux Enterprise Server 12 SP2 (x86_64)
  • Redis版本:redis-7.0.4

搭建步骤

1.下载安装包

官网地址:https://redis.io/download/

2.上传安装包到服务器,并解压
# 上传文件到服务器。我是用wsl启动的suse,所以直接复制文件就可以,实际环境中请使用相应的上传工具(如rz、ftp等)进行上传
cp /mnt/e/360安全浏览器下载/redis-7.0.4.tar.gz /home/software/redis/
# 进入压缩包所在目录
cd /home/software/redis/
# 解压文件
tar -zxvf redis-7.0.4.tar.gz
3.编译并安装到指定目录
# 进入解压后的目录
cd /home/software/redis/redis-7.0.4/
# 编译并安装
make install PREFIX=/home/software/redis/
4.建立Redis节点的配置文件所在目录,并编写配置文件

创建节点目录:

# 建立Redis节点的配置文件所在目录
mkdir /home/software/redis/cluster_01
mkdir /home/software/redis/cluster_02
mkdir /home/software/redis/cluster_03
mkdir /home/software/redis/cluster_04
mkdir /home/software/redis/cluster_05
mkdir /home/software/redis/cluster_06
mkdir /home/software/redis/cluster_07
mkdir /home/software/redis/cluster_08
mkdir /home/software/redis/cluster_09

为所有节点编写配置文件,并复制到上一步创建的cluster_01…cluster_09的目录下面。配置文件可以根据/home/software/redis/redis-7.0.4/下的redis.conf文件进行修改,这里给出一个简化后的参考配置:

# **********以下配置每个节点根据实际情况填写**********
# 本节点绑定的IP
bind 192.168.131.177
# 本节点绑定的端口
port 10001
# 本节点pid存放文件
pidfile /home/software/redis/cluster_01/cluster_01.pid
# 集群配置信息存放文件,如集群节点、哈希槽分配等信息
cluster-config-file /home/software/redis/cluster_01/cluster_01.conf

# **********以下配置可以保持不变**********
# ----------配置账号密码,也可以关闭保护模式----------
# 用户名
masteruser root
# 密码
masterauth rootpwd
# Redis 6以后,该配置可省略
requirepass rootpwd
# ----------其它配置----------
# 以守护线程的方式启动(守护线程是指用户登出后程序不会被kill,也就是可以后台运行)
daemonize yes
# 开启Redis集群模式
cluster-enabled yes
# 集群节点失去响应多久后判为定失活(单位:ms)
cluster-node-timeout 15000
# 启用AOF
appendonly yes
5.启动所有Redis节点
/home/software/redis/bin/redis-server /home/software/redis/cluster_01/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_02/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_03/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_04/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_05/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_06/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_07/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_08/redis.conf
/home/software/redis/bin/redis-server /home/software/redis/cluster_09/redis.conf
6.创建集群
# -a: 密码/--cluster create:创建集群/--cluster-replicas 2:指定一个主节点配置多少从节点,这里是一主二从
/home/software/redis/bin/redis-cli -a rootpwd --cluster create --cluster-replicas 2 192.168.131.177:10001 192.168.131.177:10002 192.168.131.177:10003 192.168.131.177:10004 192.168.131.177:10005 192.168.131.177:10006 192.168.131.177:10007 192.168.131.177:10008 192.168.131.177:10009

命令执行后会让你确认集群配置,确认无误的话,输入yes回车即可。

7.使用集群

连接集群:

# -h:连接地址/-p:连接端口/-a:密码/-c:开启集群模式,也就是支持-MOVE和-ASK的重定向,也就是即便你操作的key不在当前连接的节点,也可以自动重定向到正确的节点
redis-cli -h 192.168.131.177 -p 10001 -a rootpwd -c

使用:

此时已经可以使用redis命令了(如set、get),我们重点看下集群配置信息:

# 查看集群的集群配置(更早的版本没有此命令,可以用cluster slots)
cluster shards

以其中一个主节点的返回信息为例,简单分析下返回数据:

3) 1) "slots" # 哈希槽信息,值为下面两行。注:redis返回信息可以看成:(同级别下)奇数行为标题,偶数行为数据。
   2) 1) (integer) 10923 # 起始哈希槽
      2) (integer) 16383 # 截止哈希槽
   3) "nodes"
   4) 1)  1) "id"
          2) "e296834ca1e86e33c42e9eb6090e4339cb8fe939"
          3) "port"
          4) (integer) 10003
          5) "ip"
          6) "192.168.131.177"
          7) "endpoint"
          8) "192.168.131.177"
          9) "hostname"
         10) ""
         11) "role"
         12) "master" # 角色为主节点
         13) "replication-offset"
         14) (integer) 0
         15) "health"
         16) "online"
      2)  1) "id"
          2) "50fa309f6ecf7697bcf737c9dd704c931564ac1b"
          3) "port"
          4) (integer) 10006
          5) "ip"
          6) "192.168.131.177"
          7) "endpoint"
          8) "192.168.131.177"
          9) "hostname"
         10) ""
         11) "role"
         12) "replica" # 角色为从节点
         13) "replication-offset"
         14) (integer) 0
         15) "health"
         16) "loading"
      3)  1) "id"
          2) "650a13eead26beb0c31c8072c198f08cc6ddb7a0"
          3) "port"
          4) (integer) 10009
          5) "ip"
          6) "192.168.131.177"
          7) "endpoint"
          8) "192.168.131.177"
          9) "hostname"
         10) ""
         11) "role"
         12) "replica" # 角色为从节点
         13) "replication-offset"
         14) (integer) 0
         15) "health"
         16) "loading"

你可能感兴趣的:(数据库,redis,数据库)