暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Redis 一键自动安装脚本

1114

#!/bin/bash

#使用说明
#脚本保存为 iredis.sh,然后把redis 安装包 redis-3.2.13.tar.gz 放在同一个路径下,执行 sh iredis.sh $(hostname -i)#redis 5也可以参考
if [ $# -ne 1 ]; then
echo "error number of args"
exit 1
fi

masterip=$1
ip=$(ip -4 a|grep -i 'inet 10'|head -1|awk '{print $2}'|awk -F '/' '{print $1}')

mem=`cat /proc/meminfo|grep MemTotal|awk '{print $2}'`
mem=`expr $mem / 1024 / 2 `
mem="$mem"M



groupadd -g 6380 redis
useradd -g redis -u 6380 -d /home/redis -p Redis123 -m redis -s /bin/bash

echo "redis soft nofile 65536" >> /etc/security/limits.conf
echo "redis hard nofile 65536" >> /etc/security/limits.conf
echo "redis soft nproc 65536" >> /etc/security/limits.conf
echo "redis hard nproc 65536" >> /etc/security/limits.conf
echo "redis soft core unlimited" >> /etc/security/limits.conf
echo "redis hard core unlimited" >> /etc/security/limits.conf



umask 022
sysctl vm.overcommit_memory=1
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 511 > /proc/sys/net/core/somaxconn
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
echo "echo 511 > /proc/sys/net/core/somaxconn" >> /etc/rc.local

mkdir -p /data/middleware/redis/conf
mkdir -p /data/middleware/redis/dump
mkdir -p /log/redis

cd /root
tar -zxvf redis-3.2.13.tar.gz
cd /root/redis-3.2.13
make PREFIX=/data/middleware/redis install

cd /root/redis-3.2.13
sed -i "s/bind 127.0.0.1/bind 127.0.0.1 ${ip}/g" redis.conf
sed -i 's/port 6379/port 6380/g' redis.conf
sed -i 's/daemonize no/daemonize yes/g' redis.conf
sed -i 's/pidfile \/var\/run\/redis_6379.pid/pidfile \/log\/redis\/redis.pid/g' redis.conf
sed -i 's/logfile ""/logfile "\/log\/redis\/redis.log"/g' redis.conf
if [ $masterip = $ip ]; then
sed -i 's/save 900 1/\#save 900 1/g' redis.conf
sed -i 's/save 300 10/\#save 300 10/g' redis.conf
sed -i 's/save 60 10000/\#save 60 10000/g' redis.conf
else
sed -i 's/save 900 1/save 1800 1/g' redis.conf
sed -i 's/save 300 10/save 600 10/g' redis.conf
fi
sed -i 's/dir \.\//dir \/data\/middleware\/redis\/dump/g' redis.conf
sed -i 's/\# masterauth /masterauth Redis123/g' redis.conf
sed -i 's/repl\-diskless\-sync no/repl\-diskless\-sync yes/g' redis.conf
sed -i 's/\# requirepass foobared/requirepass Redis123/g' redis.conf
sed -i 's/\# maxclients 10000/maxclients 2000/g' redis.conf
sed -i "s/\# maxmemory /maxmemory ${mem}/g" redis.conf
sed -i 's/\# maxmemory-policy noeviction/maxmemory-policy noeviction/g' redis.conf

echo "bind 127.0.0.1 ${ip}" > /root/redis-3.2.13/sentinel.conf
echo "protected-mode yes" >> /root/redis-3.2.13/sentinel.conf
echo "port 26380" >> /root/redis-3.2.13/sentinel.conf
echo "daemonize yes" >> /root/redis-3.2.13/sentinel.conf
echo "pidfile /log/redis/sentinel.pid" >> /root/redis-3.2.13/sentinel.conf
echo "logfile /log/redis/sentinel.log" >> /root/redis-3.2.13/sentinel.conf
echo "sentinel monitor mymaster $masterip 6380 2" >> /root/redis-3.2.13/sentinel.conf
echo "sentinel auth-pass mymaster Redis123" >> /root/redis-3.2.13/sentinel.conf
echo "sentinel down-after-milliseconds mymaster 180000" >> /root/redis-3.2.13/sentinel.conf
echo "sentinel parallel-syncs mymaster 1" >> /root/redis-3.2.13/sentinel.conf
echo "sentinel failover-timeout mymaster 180000" >> /root/redis-3.2.13/sentinel.conf

cp /root/redis-3.2.13/*.conf /data/middleware/redis/conf
chown -R redis:redis /data/middleware/redis /log/redis

su - redis -c "/data/middleware/redis/bin/redis-server /data/middleware/redis/conf/redis.conf"
su - redis -c "/data/middleware/redis/bin/redis-sentinel /data/middleware/redis/conf/sentinel.conf"

exit 0
复制
最后修改时间:2022-10-22 10:35:13
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论