资源规划

组件 LTSR003 LTSR005 LTSR006 LTSR007 LTSR008
OS centos7.6 centos7.6 centos7.6 centos7.6 centos7.6
Redis Redis:6001、Redis:6002 Redis:6003、Redis:6004 Redis:6005、Redis:6006 N.A N.A

安装介质

版本:redis-5.0.8.tar.gz
下载:https://redis.io/download

环境准备

检查并确认已经安装gcc-4.8.5+版本。(CentOS7.6自带gcc-4.8.5)

  1. sudo yum install gcc

编译安装

  1. # root用户
  2. sudo su
  3. cd ~/software/
  4. wget http://download.redis.io/releases/redis-5.0.8.tar.gz
  5. tar -zxvf redis-5.0.8.tar.gz -C /usr/local/
  6. rm -rf /share/redis-5.0.8.tar.gz
  7. mv /usr/local/redis-5.0.8 /usr/local/redis
  8. cd /usr/local/redis/deps
  9. make hiredis jemalloc linenoise lua
  10. cd /usr/local/redis
  11. make PREFIX=/usr/local/redis MALLOC=libc install

集群模式

官方推荐集群至少需要六个节点,即三主三从。六个节点的配置文件基本相同,只需要修改端口号。由于Redis cluster是redis官方提供的,目前官方一直都在维护中,具有代表性,建议生产使用

1. 创建空目录

  1. sudo mkdir -p /usr/local/redis_cluster
  2. cd /usr/local/redis_cluster
  3. # LTSR003
  4. sudo mkdir 6001 6002
  5. # LTSR005
  6. sudo mkdir 6003 6004
  7. # LTSR006
  8. sudo mkdir 6005 6006

2. 初始化配置

  1. mkdir -p /usr/local/redis/conf
  2. vi /usr/local/redis/conf/redis.conf

配置如下:

daemonize yes

拷贝及分发配置:

# LTSR003(LTSR003节点上执行)
cp /usr/local/redis/bin/redis-server /usr/local/redis_cluster/6001
cp /usr/local/redis/bin/redis-server /usr/local/redis_cluster/6002
cp /usr/local/redis/conf/redis.conf /usr/local/redis_cluster/6001
cp /usr/local/redis/conf/redis.conf /usr/local/redis_cluster/6002
# LTSR005(LTSR003节点上执行)
scp -r /usr/local/redis/bin/redis-server root@LTSR005:/usr/local/redis_cluster/6003/
scp -r /usr/local/redis/bin/redis-server root@LTSR005:/usr/local/redis_cluster/6004/
scp -r /usr/local/redis/conf/redis.conf root@LTSR005:/usr/local/redis_cluster/6003/
scp -r /usr/local/redis/conf/redis.conf root@LTSR005:/usr/local/redis_cluster/6004/
# LTSR006(LTSR003节点上执行)
scp -r /usr/local/redis/bin/redis-server root@LTSR006:/usr/local/redis_cluster/6005/
scp -r /usr/local/redis/bin/redis-server root@LTSR006:/usr/local/redis_cluster/6006/
scp -r /usr/local/redis/conf/redis.conf root@LTSR006:/usr/local/redis_cluster/6005/
scp -r /usr/local/redis/conf/redis.conf root@LTSR006:/usr/local/redis_cluster/6006/

3. 修改配置

# LTSR003节点上执行
vi /usr/local/redis_cluster/6001/redis.conf
vi /usr/local/redis_cluster/6002/redis.conf
# LTSR005节点上执行
vi /usr/local/redis_cluster/6003/redis.conf
vi /usr/local/redis_cluster/6004/redis.conf
# LTSR006节点上执行
vi /usr/local/redis_cluster/6005/redis.conf
vi /usr/local/redis_cluster/6006/redis.conf

配置如下:

# 设置端口号
port 6000
# 数据存放位置,必须指定
dir /usr/local/redis_cluster/6000/
# 启动集群模式
cluster-enabled yes
# 集群节点信息文件
cluster-config-file nodes-6000.conf
cluster-node-timeout 5000
# 默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
bind 192.168.0.101
# 关闭保护模式
protected-mode no
# 开启AOF模式(它会每次写操作都记录一条日志 ),默认的持久化RDB
appendonly yes
# redis后台运行
daemonize yes
# 设置密码
requirepass hadoopredis
# pidfile文件
pidfile /var/run/redis_6000.pid
  • 6001(# LTSR003

    port 6001
    dir /usr/local/redis_cluster/6001/
    cluster-enabled yes
    cluster-config-file nodes-6001.conf
    cluster-node-timeout 5000
    bind 10.8.0.125
    protected-mode no
    appendonly yes
    daemonize yes
    requirepass hadoopredis
    pidfile /var/run/redis-6001.pid
    
  • 6002(# LTSR003

    port 6002
    dir /usr/local/redis_cluster/6002/
    cluster-enabled yes
    cluster-config-file nodes-6002.conf
    cluster-node-timeout 5000
    bind 10.8.0.125
    protected-mode no
    appendonly yes
    daemonize yes
    requirepass hadoopredis
    pidfile /var/run/redis-6002.pid
    
  • 6003(# LTSR005

    port 6003
    dir /usr/local/redis_cluster/6003/
    cluster-enabled yes
    cluster-config-file nodes-6003.conf
    cluster-node-timeout 5000
    bind 10.8.0.109
    protected-mode no
    appendonly yes
    daemonize yes
    requirepass hadoopredis
    pidfile /var/run/redis-6003.pid
    
  • 6004(# LTSR005

    port 6004
    dir /usr/local/redis_cluster/6004/
    cluster-enabled yes
    cluster-config-file nodes-6004.conf
    cluster-node-timeout 5000
    bind 10.8.0.109
    protected-mode no
    appendonly yes
    daemonize yes
    requirepass hadoopredis
    pidfile /var/run/redis-6004.pid
    
  • 6005(# LTSR006

    port 6005
    dir /usr/local/redis_cluster/6005/
    cluster-enabled yes
    cluster-config-file nodes-6005.conf
    cluster-node-timeout 5000
    bind 10.8.0.137
    protected-mode no
    appendonly yes
    daemonize yes
    requirepass hadoopredis
    pidfile /var/run/redis-6005.pid
    
  • 6006(# LTSR006

    port 6006
    dir /usr/local/redis_cluster/6006/
    cluster-enabled yes
    cluster-config-file nodes-6006.conf
    cluster-node-timeout 5000
    bind 10.8.0.137
    protected-mode no
    appendonly yes
    daemonize yes
    requirepass hadoopredis
    pidfile /var/run/redis-6006.pid
    

    4. 启动服务

    # LTSR003
    /usr/local/redis_cluster/6001/redis-server /usr/local/redis_cluster/6001/redis.conf
    /usr/local/redis_cluster/6002/redis-server /usr/local/redis_cluster/6002/redis.conf
    # LTSR005
    /usr/local/redis_cluster/6003/redis-server /usr/local/redis_cluster/6003/redis.conf
    /usr/local/redis_cluster/6004/redis-server /usr/local/redis_cluster/6004/redis.conf
    # LTSR006
    /usr/local/redis_cluster/6005/redis-server /usr/local/redis_cluster/6005/redis.conf
    /usr/local/redis_cluster/6006/redis-server /usr/local/redis_cluster/6006/redis.conf
    # 验证服务是否启动
    ps -ef |grep redis
    netstat -tnlp | grep redis
    

    5. 创建集群

    cd /usr/local/redis
    ./bin/redis-cli -a hadoopredis --cluster create 10.8.0.125:6001 10.8.0.125:6002 10.8.0.109:6003 10.8.0.109:6004 10.8.0.137:6005 10.8.0.137:6006 --cluster-replicas 1
    

    6. 验证

    cd /usr/local/redis
    ./bin/redis-cli -a hadoopredis -h 10.8.0.125 -p 6001 -c
    # 查看集群状态
    redis>> cluster info
    # 查看主从关系
    redis>> cluster nodes
    

    7. 关闭Redis服务

    # 方式1
    # LTSR003
    /usr/local/redis/bin/redis-cli -a hadoopredis -c -h 10.8.0.125 -p 6001 shutdown
    /usr/local/redis/bin/redis-cli -a hadoopredis -c -h 10.8.0.125 -p 6002 shutdown
    /usr/local/redis/bin/redis-cli -a hadoopredis -c -h 10.8.0.109 -p 6003 shutdown
    /usr/local/redis/bin/redis-cli -a hadoopredis -c -h 10.8.0.109 -p 6004 shutdown
    /usr/local/redis/bin/redis-cli -a hadoopredis -c -h 10.8.0.137 -p 6005 shutdown
    /usr/local/redis/bin/redis-cli -a hadoopredis -c -h 10.8.0.137 -p 6006 shutdown
    # 方式2
    /usr/local/redis/src/redis-cli -a hadoopredis -c -h 10.8.0.125 -p 6001 shutdown
    /usr/local/redis/src/redis-cli -a hadoopredis -c -h 10.8.0.125 -p 6002 shutdown
    /usr/local/redis/src/redis-cli -a hadoopredis -c -h 10.8.0.109 -p 6003 shutdown
    /usr/local/redis/src/redis-cli -a hadoopredis -c -h 10.8.0.109 -p 6004 shutdown
    /usr/local/redis/src/redis-cli -a hadoopredis -c -h 10.8.0.137 -p 6005 shutdown
    /usr/local/redis/src/redis-cli -a hadoopredis -c -h 10.8.0.137 -p 6006 shutdown
    # 方式3
    pkill redis-server
    

    8. 清理集群

    # LTSR003
    rm -rf /usr/local/redis_cluster/6001/appendonly.aof 
    rm -rf /usr/local/redis_cluster/6002/appendonly.aof 
    rm -rf /usr/local/redis_cluster/6001/nodes-*.conf
    rm -rf /usr/local/redis_cluster/6002/nodes-*.conf
    # LTSR005
    rm -rf /usr/local/redis_cluster/6003/appendonly.aof 
    rm -rf /usr/local/redis_cluster/6004/appendonly.aof 
    rm -rf /usr/local/redis_cluster/6003/nodes-*.conf
    rm -rf /usr/local/redis_cluster/6004/nodes-*.conf
    # LTSR006
    rm -rf /usr/local/redis_cluster/6005/appendonly.aof 
    rm -rf /usr/local/redis_cluster/6006/appendonly.aof 
    rm -rf /usr/local/redis_cluster/6005/nodes-*.conf
    rm -rf /usr/local/redis_cluster/6006/nodes-*.conf