在实际生产使用Redis时,更多的还是使用Redis集群,因为这既可以保证性能,又可以保障稳定性。这里介绍一下Redis集群部署,下面是笔者之前写的自动部署脚本,供各位参考。当时(包括下面的脚本)使用的Redis版本是3.2.1,目前最新的版本已经是6.0了,相较于老版本增加了很多令人期待的特性,比如权限控制、客户端缓存等。下面进入正题。
部署脚本 |
部署脚本包含两个部分,第一个脚本是集群安装前的一些准备工作,第二个脚本是执行集群部署工作。
脚本1: prepare-script.sh
#!/bin/bash
# 此脚本为离线安装时准备工作执行的脚本,每个集群节点都要运行该脚本
# 运行该脚本前请确保已安装gcc
# 检查是否已上传redis安装包,这里使用redis-3.2.1.tar.gz,且放在/usr目录下
#-------------------------------------------------------------------------------------------#
#---------------------------------------配置信息--------------------------------------------#
#-------------------------------------------------------------------------------------------#
#redis所在(绝对)路径
redis_path="/usr/redis-3.2.1"
#Redis数据节点端口
node_port=6379
#保存配置文件的目录 --可不修改
save_file_catalog="config"
#-------------------------------------------------------------------------------------------#
#-------------------------------!!!下方内容请勿修改!!!--------------------------------#
#-------------------------------------------------------------------------------------------#
# 关闭防火墙
systemctl stop firewalld
service iptables status
#创建目录
cd ${
redis_path}
if [ -e "${save_file_catalog}" ]
then
rm -rf ${
save_file_catalog}
fi
mkdir ${
save_file_catalog}
#编译安装redis
function compileRedis(){
cd ${
redis_path}
if [ ! -f "src/redis-server" -o ! -f "src/redis-cli" ]
then
echo "The redis may not be compiled. Compile it first! Please wait a moment..."
echo -e "\n\nComplie redis : $(date)\n" >> ${
save_file_catalog}/compile.log
make >> ${
save_file_catalog}/compile.log 2>&1
make install >> ${
save_file_catalog}/compile.log 2>&1
echo -e "Compile success!\n"
fi
}
# 创建配置文件
function createClusterCfgFile() {
echo "Begin to create cluster config file..."
cd ${
redis_path}
cd ${
save_file_catalog}
echo -e "port ${node_port}" >> redis_cluster.conf
echo -e "cluster-enabled yes" >> redis_cluster.conf
echo -e "cluster-config-file nodes.conf" >> redis_cluster.conf
echo -e "cluster-node-timeout 5000" >&