资源规划
组件 | 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)
sudo yum install gcc
编译安装
# root用户
sudo su
cd ~/software/
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar -zxvf redis-5.0.8.tar.gz -C /usr/local/
rm -rf /share/redis-5.0.8.tar.gz
mv /usr/local/redis-5.0.8 /usr/local/redis
cd /usr/local/redis/deps
make hiredis jemalloc linenoise lua
cd /usr/local/redis
make PREFIX=/usr/local/redis MALLOC=libc install
集群模式
官方推荐集群至少需要六个节点,即三主三从。六个节点的配置文件基本相同,只需要修改端口号。由于Redis cluster是redis官方提供的,目前官方一直都在维护中,具有代表性,建议生产使用。
1. 创建空目录
sudo mkdir -p /usr/local/redis_cluster
cd /usr/local/redis_cluster
# LTSR003
sudo mkdir 6001 6002
# LTSR005
sudo mkdir 6003 6004
# LTSR006
sudo mkdir 6005 6006
2. 初始化配置
mkdir -p /usr/local/redis/conf
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