1 #!/bin/bash
2 echo "Redis 初始化安装脚本"
3 <<COMMENT
4 注:
5 AUTHOR: ws, 779269823@qq.com
6 CREATED: 2019.11.06
7 VERSION: 1.0
8 Redis版本:4.0.11
9 CentOS Linux release 7.6.1810 (Core)
10 COMMENT
11
12 #安装依赖库
13 yum install -y cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget
14
15 #下载解压
16 cd /opt
17 wget -c http://download.redis.io/releases/redis-4.0.11.tar.gz
18 if [ -f /opt/redis-4.0.11.tar.gz ];then
19 tar zxvf redis-4.0.11.tar.gz
20 mv redis-4.0.11 /usr/local/redis
21 cd /usr/local/redis
22 make
23 cd src/
24 make install
25 else
26 echo "文件不存在!"
27 exit;
28 fi
29
30 #配置系统参数
31 echo 512 > /proc/sys/net/core/somaxconn
32 echo 1 > /proc/sys/vm/overcommit_memory
33 echo never > /sys/kernel/mm/transparent_hugepage/enabled
34 sed -i '/\# End of file/i * soft nofile 65535' /etc/security/limits.conf
35 sed -i '/\# End of file/i * hard nofile 65535' /etc/security/limits.conf
36 echo ulimit -SHn 65535 >> /etc/profile
37 source /etc/profile
38
39 #Redis配置文件
40 sed -e "s/#.*//g" /usr/local/redis/redis.conf | awk '{if (length !=0) print $0}'
41 sed -i '136s/daemonize no/daemonize yes/' /usr/local/redis/redis.conf
42 sed -i '69s/127.0.0.1/0.0.0.0/' /usr/local/redis/redis.conf
43 sed -i '88s/protected-mode yes/protected-mode no/' /usr/local/redis/redis.conf
44 sed -i 's/^appendonly yes/appendonly no/' /usr/local/redis/redis.conf
45 sed -i 's/^dbfilename dump.rdb/dbfilename dump.rdb/' /usr/local/redis/redis.conf
46 sed -i 's/^dir .\//dir \/backup/' /usr/local/redis/redis.conf
47 echo logfile /var/log/redis.log >> /usr/local/redis/redis.conf
48 mkdir -p /etc/redis
49 ln -s /usr/local/redis/redis.conf /etc/redis/6379.conf
50 ln -s /usr/local/redis/utils/redis_init_script /etc/init.d/redisd
51 /sbin/chkconfig redisd on
52
53 #(开启redis服务,服务名为:redisd)
54 systemctl start redisd
55
56 #redis-cli
57 netstat -ntpl|grep redis
58 echo "Redis 部署完成!"
59 echo " "
60 echo "如果系统是Centos 7在安装完毕后检查防火墙,可执行以下命令来放行redis 外部通信。"
61 echo "firewall-cmd --zone=public --add-port=6379/tcp --permanent"
62 echo "firewall-cmd --reload"
63 echo "firewall-cmd --zone= public --query-port=6379/tcp"
64
65 systemctl stop redisd
66 systemctl start redisd