Redis部署
一、一键部署脚本
#!/bin/bash
u_redis_home="/apps"
u_redis_dir="redis"
u_redis_servername="redis"
u_redis_port="6379"
u_redis_bind="0.0.0.0"
u_redis_password="password"
u_redis_daemonize="yes"
u_redis_append_offon="yes"
useradd redis -s /sbin/nologin -M
#创建redis用户
yum install -y gcc make systemd-devel
#安装依赖
yum install -y jemalloc-devel
#安装依赖 centos7需要,centos8不需要
make -j `cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l` PREFIX=${u_redis_home}/${u_redis_dir} USE_SYSTEMD=yes install
#编译安装
echo "PATH=${u_redis_home}/${u_redis_dir}/bin:$PATH" > /etc/profile.d/redis.sh
. /etc/profile.d/redis.sh
#添加环境变量
mkdir ${u_redis_home}/${u_redis_dir}/{etc,log,data,run}
#创建目录结构
cp redis.conf ${u_redis_home}/${u_redis_dir}/etc/
#复制配置文件模板
chown -R redis.redis ${u_redis_home}/${u_redis_dir}
#修改redis目录属组
sed -i "s/bind 127.0.0.1 -::1/bind ${u_redis_bind}/" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改监听地址
sed -i "s/port 6379/port ${u_redis_port}/" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改监听端口
sed -i "s/# requirepass foobared/requirepass ${u_redis_password}/" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改密码
sed -i "s/daemonize no/daemonize yes/" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改守护进程模式
sed -i -r "/^dir/c dir ${u_redis_home}/${u_redis_dir}/data" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改数据文件路径
sed -i "s/appendonly no/appendonly ${u_redis_append_offon}/" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#设置AOF
sed -i "/^logfile/c logfile ${u_redis_home}/${u_redis_dir}/log/redis_${u_redis_port}.log" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改log存放目录
sed -i "/^pidfile/c pidfile ${u_redis_home}/${u_redis_dir}/run/redis_${u_redis_port}.pid" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改pid存放目录
sed -i "/^dbfilename/c dbfilename dump_${u_redis_port}.rdb" ${u_redis_home}/${u_redis_dir}/etc/redis.conf
#修改数据文件名称
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
#优化项
cat << EOF > /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=${u_redis_home}/${u_redis_dir}/bin/redis-server ${u_redis_home}/${u_redis_dir}/etc/redis.conf --supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target
EOF
#添加systemd-dervice文件
systemctl daemon-reload
#重载systemd-dervice配置
systemctl enable --now ${u_redis_servername}
#开机启动服务
systemctl status ${u_redis_servername}
#查看服务状态二、使用docker部署redis
docker pull redis:7.0.4
#拉取指定版本的redis
docker run -d --name redis-server-01 -p 6379:6379 redis:7.0.4 --requirepass "123456"
#启动redis镜像,设置密码。