Linux下一键部署Redis脚本

这是一个用于在Linux系统中自动化安装Redis 4.0.10的脚本,包括下载Redis源码、安装依赖、进行内核参数优化和配置文件修改。脚本还解决了因Windows编辑导致的换行符问题,并提供了启动Redis服务和检查端口监听的步骤。
摘要由CSDN通过智能技术生成

redis安装脚本如下

#!/bin/sh
##redis任何版本全程自动化源码编译安装
##用法:sh redis-install.sh 4.0.10 (后面跟的是你需要的版本号,需要什么版本就写什么版本),我这里安装的4.0.10
version=$1
usage(){
echo "usage: $0 version"
}

if [ $# -ne 1 ]
then
usage
exit -1
fi

#Redis安装包下载
cd /usr/local/src
if [ ! -f redis-${version}.tar.gz ]
then
curl -o /usr/local/src/redis-${version}.tar.gz http://download.redis.io/releases/redis-${version}.tar.gz
fi

#Redis依赖包安装
yum clean all
yum makecache fast
yum -y install gcc gcc-c++ tcl

#编译Redis所需要的gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
source /opt/rh/devtoolset-9/enable
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
gcc --version

##内系统参数核优化
cat >> /etc/rc.d/rc.local << "EOF"

##关闭Linux的THP(内存管理系统)通过使用更大的内存页面,来减少具有大量内存的计算机上的TLB的开销
if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]
then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]
then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod u+x /etc/rc.d/rc.local

if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]
then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]
then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

cat >> /etc/sysctl.conf << "EOF"

#Linux系统内核参数优化
net.core.somaxconn = 2048
net.ipv4.tcp_max_syn_backlog = 2048
vm.overcommit_memory = 1
EOF
sysctl -p

cat > /etc/security/limits.conf << "EOF"
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
EOF

#Redis编译安装
cd /usr/local/src
tar -zxvf redis-${version}.tar.gz
cd /usr/local/src/redis-${version}
make
make PREFIX=/usr/local/redis install

#Redis基础配置
mkdir -p /usr/local/redis/{etc,logs,data}
egrep -v "^$|^#" /usr/local/src/redis-${version}/redis.conf > /usr/local/redis/etc/redis.conf
#sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /usr/local/redis/etc/redis.conf
sed -i "s/protected-mode yes/protected-mode no/g" /usr/local/redis/etc/redis.conf
sed -i "s/daemonize no/daemonize yes/g" /usr/local/redis/etc/redis.conf
sed -i "s/pidfile \/var\/run\/redis_6379.pid/pidfile \/usr\/local\/redis\/redis.pid/g" /usr/local/redis/etc/redis.conf
sed -i "s/dir \.\//dir \/usr\/local\/redis\/data/g" /usr/local/redis/etc/redis.conf
sed -i "s/logfile \"\"/logfile \"\/usr\/local\/redis\/logs\/redis.log\"/g" /usr/local/redis/etc/redis.conf
sed -i "s/dbfilename dump.rdb/dbfilename dump.rdb/g" /usr/local/redis/etc/redis.conf
sed -i "s/appendfilename \"appendonly.aof\"/appendfilename \"appendonly.aof\"/g" /usr/local/redis/etc/redis.conf

#PATH配置
echo "export PATH=${PATH}:/usr/local/redis/bin" >>/etc/profile
source /etc/profile
#启动redis服务
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
#查看redis监听端口
netstat -tanp|grep redis

windows下编写shell在linux运行会报错

syntax error near unexpected token '$'\r''

原因如下:

  1. 因为你所处理的文件换行符是dos格式的”\r\n” ;

  2. 可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m 需要转换成linux/unix格式的”\n”;

  3. 具体转换办法就是转换换行符 。

解决办法:

运行命令:sed 's/\r//' redis.sh > redis-install.sh

redis.sh 是原来的名称

redis-install.sh 是转换格式之后的名字

用法:

sh redis-install.sh 4.0.10 (后面跟的是你需要的版本号,需要什么版本就写什么版本),我这里安装的4.0.10

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,这里是一个一键部署 Redis 集群的脚本的示例。首先,请确保您已经安装了 Redis 和 Ruby,并且已经准备好了所有要部署的节点的主机名或 IP 地址: ```bash #!/usr/bin/env ruby # 首先,定义要部署Redis 节点的主机名或 IP 地址 redis_nodes = ["node1", "node2", "node3"] # 安装 Redis 集群所需的 gem system "gem install redis" # 引入所需的库 require 'redis' # 连接到第一个节点 redis = Redis.new(host: redis_nodes[0]) # 创建 Redis 集群 redis.cluster("meet", *redis_nodes) # 检查集群状态 puts redis.cluster("info") ``` 使用这个脚本时,只需执行 `ruby deploy_redis_cluster.rb` 即可在所有指定的节点上部署 Redis 集群。 注意:这只是一个示例脚本,在实际生产环境中可能需要根据实际情况进行调整。此外,请确保在执行脚本时具有执行命令的权限。 ### 回答2: 一键部署Redis集群的脚本可以借助开源工具Redis-trib来实现。以下是一个简单的脚本,可以实现一键部署Redis集群。 #!/bin/bash #定义Redis集群的IP和端口号 IP_LIST=("192.168.1.1" "192.168.1.2" "192.168.1.3") PORT_LIST=("7000" "7001" "7002" "7003" "7004" "7005") #创建Redis集群目录 mkdir -p /opt/redis-cluster #下载、编译和安装Redis wget http://download.redis.io/releases/redis-5.0.7.tar.gz tar -zxvf redis-5.0.7.tar.gz cd redis-5.0.7/ make && make install #配置Redis集群 cd utils/create-cluster/ ./create-cluster start for ((i=0;i<3;i++)) do ./redis-trib.rb create --replicas 1 ${IP_LIST[i]}:${PORT_LIST[i]} ${IP_LIST[i+3]}:${PORT_LIST[i+3]} done #启动Redis集群 ./create-cluster start echo "Redis集群部署完成。" 上述脚本首先定义了Redis集群的IP地址和端口号。然后,脚本创建了Redis集群的目录,并下载、编译和安装Redis。接下来,脚本调用Redis-trib工具的create-cluster命令,根据定义的IP地址和端口号创建Redis集群。 在循环中,通过调用redis-trib.rb create --replicas命令,为每个主节点指定一个从节点,并将其添加到Redis集群中。 最后,脚本调用create-cluster start命令启动Redis集群,并打印出部署完成的消息。 使用上述脚本,只需运行shell脚本就能一键部署Redis集群,简化了手动配置的步骤。 ### 回答3: 一键部署Redis集群的脚本如下: #!/bin/bash # 定义Redis集群的主机IP地址 redis_node1="127.0.0.1" redis_node2="127.0.0.2" redis_node3="127.0.0.3" # 定义Redis集群的端口号 redis_port=6379 # 创建Redis集群的配置文件 echo "port $redis_port" > redis_cluster.conf echo "cluster-enabled yes" >> redis_cluster.conf echo "cluster-config-file nodes.conf" >> redis_cluster.conf echo "cluster-node-timeout 5000" >> redis_cluster.conf echo "cluster-slave-validity-factor 10" >> redis_cluster.conf # 将Redis集群配置文件拷贝到所有节点主机上 scp redis_cluster.conf $redis_node1:/etc/redis/redis.conf scp redis_cluster.conf $redis_node2:/etc/redis/redis.conf scp redis_cluster.conf $redis_node3:/etc/redis/redis.conf # 启动Redis集群的节点 ssh $redis_node1 "redis-server /etc/redis/redis.conf" ssh $redis_node2 "redis-server /etc/redis/redis.conf" ssh $redis_node3 "redis-server /etc/redis/redis.conf" # 在其中一个节点上创建Redis集群 ssh $redis_node1 "redis-cli --cluster create $redis_node1:$redis_port $redis_node2:$redis_port $redis_node3:$redis_port --cluster-replicas 0" echo "Redis集群部署成功!" 以上脚本的步骤分为以下几个部分: 1. 定义Redis集群的主机IP地址和端口号。 2. 创建Redis集群的配置文件,并添加配置项。 3. 将配置文件拷贝到所有节点主机上。 4. 启动所有节点的Redis服务。 5. 在其中一个节点上使用redis-cli命令创建Redis集群。 6. 输出部署成功的提示信息。 这个脚本可以简化Redis集群的部署过程,只需要配置好主机IP地址和端口号即可一键部署Redis集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值