Redis6 集群单机安装

Redis6 集群单机安装

官网下载

https://download.redis.io/releases/redis-6.2.6.tar.gz
http://download.redis.io/redis-stable.tar.gz

文档参考

https://redis.io/documentation

解压编译

#安装编译需要的tcl
yum -y install gcc tcl

rm -rf /data/redis

mkdir -p /data/redis/bin
mkdir -p /data/redis/data
mkdir -p /data/redis/conf
mkdir -p /data/redis/log
mkdir -p /data/redis/run

cd /data/redis
wget http://download.redis.io/redis-stable.tar.gz
#wget https://download.redis.io/releases/redis-6.2.6.tar.gz -O redis-stable.tar.gz
tar xvzf redis-stable.tar.gz

cd /data/redis/redis-stable
sudo make install PREFIX=/data/redis

配置准备

#添加到全局环境
cd /data/redis/redis-stable
sudo cp src/redis-server /usr/local/bin/
sudo cp src/redis-cli /usr/local/bin/

#拷贝模板配置文件
cd /data/redis/redis-stable
\cp redis.conf /data/redis/conf/7100.conf 
\cp redis.conf /data/redis/conf/7101.conf
\cp redis.conf /data/redis/conf/7102.conf
\cp redis.conf /data/redis/conf/7103.conf
\cp redis.conf /data/redis/conf/7104.conf
\cp redis.conf /data/redis/conf/7105.conf

mkdir -p /data/redis/data/7100
mkdir -p /data/redis/data/7101
mkdir -p /data/redis/data/7102
mkdir -p /data/redis/data/7103
mkdir -p /data/redis/data/7104
mkdir -p /data/redis/data/7105

修改配置

cd /data/redis/conf


sed -i "s/daemonize no/daemonize yes/g" *.conf
sed -i "s/appendonly no/appendonly yes/g" *.conf   #持久化
sed -i "s/# cluster-enabled yes/cluster-enabled yes/g" *.conf #开启集群
sed -i "s/# requirepass foobared/requirepass ppppp/g" *.conf #修改密码

sed -i "s/port 6379/port 7100/g" 7100.conf
sed -i "s/port 6379/port 7101/g" 7101.conf
sed -i "s/port 6379/port 7102/g" 7102.conf
sed -i "s/port 6379/port 7103/g" 7103.conf
sed -i "s/port 6379/port 7104/g" 7104.conf
sed -i "s/port 6379/port 7105/g" 7105.conf

sed -i "s/dir .\//dir \/data\/redis\/data\/7100/g" 7100.conf
sed -i "s/dir .\//dir \/data\/redis\/data\/7101/g" 7101.conf
sed -i "s/dir .\//dir \/data\/redis\/data\/7102/g" 7102.conf
sed -i "s/dir .\//dir \/data\/redis\/data\/7103/g" 7103.conf
sed -i "s/dir .\//dir \/data\/redis\/data\/7104/g" 7104.conf
sed -i "s/dir .\//dir \/data\/redis\/data\/7105/g" 7105.conf

sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7100.log\"/g" 7100.conf
sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7101.log\"/g" 7101.conf
sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7102.log\"/g" 7102.conf
sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7103.log\"/g" 7103.conf
sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7104.log\"/g" 7104.conf
sed -i "s/logfile \"\"/logfile \"\/data\/redis\/log\/7105.log\"/g" 7105.conf


#集群节点配置文件,这个文件是不能手动编辑的。确保每一个集群节点的配置文件不同
sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7100.conf/g" 7100.conf
sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7101.conf/g" 7101.conf
sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7102.conf/g" 7102.conf
sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7103.conf/g" 7103.conf
sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7104.conf/g" 7104.conf
sed -i "s/# cluster-config-file nodes-6379.conf/cluster-config-file nodes-7105.conf/g" 7105.conf

集群启动脚本

vi /usr/local/bin/redis_cluster
chmod +x /usr/local/bin/redis_cluster

#开机自启
\cp /usr/local/bin/redis_cluster /etc/init.d/redis_cluster


#!/bin/bash
# shellcheck disable=SC2181

APP_WORKDIR=/data/redis
APP_NAME=redis_cluster

#使用说明,用来提示输入参数
usage() {
  echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
  exit 1
}

#检查程序是否在运行
is_exist() {
  pid=$(ps -ef | grep "redis-server" | grep -v grep | awk '{print $2}')
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
    return 1
  else
    return 0
  fi
}

#启动方法
start() {
  is_exist
  # shellcheck disable=SC2181
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    tmp=$(ls ${APP_WORKDIR}/conf)
    for i in ${tmp}; do
      ${APP_WORKDIR}/bin/redis-server ${APP_WORKDIR}/conf/$i
    done
    echo "${APP_NAME} start success"
  fi
  status
}

#停止方法
stop() {
  is_exist
  if [ $? -eq "0" ]; then
    echo "stop ${APP_NAME}!"
    pgrep redis-server | xargs -exec kill -9
  else
    status
  fi
}

#输出运行状态
status() {
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重启
restart() {
  stop
  start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
  start
  ;;
"stop")
  stop
  ;;
"status")
  status
  ;;
"restart")
  restart
  ;;
*)
  status
  usage
  ;;
esac

启动集群

#第一次需要初始化集群,直接yes自动分配M和S
redis-cli --cluster create 127.0.0.1:7100 127.0.0.1:7101 127.0.0.1:7102 127.0.0.1:7103 127.0.0.1:7104 127.0.0.1:7105 --cluster-replicas 1 --pass ppppp

常用命令

#查看集群信息
redis-cli -c -h 127.0.0.1 -p 7100 --pass ppppp cluster info
#查看集群节点
redis-cli -c -h 127.0.0.1 -p 7100 --pass ppppp cluster nodes
#连接集群使用
redis-cli -c -h 127.0.0.1 -p 7100 --pass ppppp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值