以下操作在debian11、deiban12下演示,ubuntu通用,其它系列linux发行版自行安装依赖,其余一样
以7.2.1版本为例进行安装
最后的bash脚本是对前面的操作的封装,一键即配置完成,即可使用
一、编译安装
1.安装依赖
apt-get install build-essential autoconf automake
2.下载
redis官方下载页面
redis github页面
cd /usr/local
如果下载不下来,复制链接用迅雷这类工具下载后上传到服务器
wget https://github.com/redis/redis/archive/7.2.1.tar.gz
3.解压
tar -zxvf /usr/local/7.2.1.tar.gz
4.编译安装
cd redis-7.2.1
安装到/usr/local/redis
make && make install
5.配置文件
配置文件在源码包里面,复制配置文件到/etc
mkdir /etc/redis
cp /usr/local/redis-7.2.1/redis.conf /etc/redis/redis.conf
下面的命令测试运行,ctrl+c退出
/usr/local/bin/redis-server /etc/redis/redis.conf
6.修改配置文件
vi /etc/redis/redis.conf
守护模式开启
找到daemonize no,修改为daemonize yes(这个参数当适用systemctl管理时失效)
修改安全设置
requirepass xxx:设定密码访问(如果只是做缓存公开信息的话,可以不用密码)
bind 127.0.0.1:绑定的ip,在保护模式开启的情况下,只有绑定的ip才可以访问redis服务,建议添加#号注释,否则外部的设备无法访问,只能安装redis的访问。
protected-mode yes:保护模式,如果为yes,绑定的ip或输入密码才能访问。如果为no,则所有保护措施失效。
port:redis服务端口号,默认是6379,如果需要修改redis的访问端口,就通过修改该值实现
7.systemctl脚本管理
vi /usr/lib/systemd/system/redis.service
内容如下
[Unit]
Description=redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存:wq
启动并开启启动
systemctl daemon-reload && systemctl start redis && systemctl enable redis && systemctl status redis
8.远程连接
使用redisinsight连接,不写账号,只写上面设定的密码即可
如果后期优化,可以设定账号密码,这里不再涉及
二、编译安装的一键脚本
1.创建脚本文件
vi /usr/local/redis7.sh
2.编辑
可能会卡在下载redis源码包上,可以注释掉wget这一行,然后上传其它地方下载的上传到/usr/local
#!/bin/bash
# 常量设置
redis_version="7.2.1" # redis版本
install_path="/usr/local" # 安装、操作目录
# 输入redis密码,如果为空则没有
read -p -"请输入一个redis密码:" redis_password
# 安装依赖
echo "......正在安装依赖......"
apt-get install -y build-essential autoconf automake
echo "......依赖安装完成......"
# 下载redis源码包
echo "......正在下载源码包......"
wget -P ${install_path} https://github.com/redis/redis/archive/${redis_version}.tar.gz
echo "......源码包下载完成......"
# 解压缩
echo "......正在解压缩源码包......"
cd ${install_path}
tar -zxf ${install_path}/${redis_version}.tar.gz
echo "......源码包解压缩完成......"
# 编译安装
echo "......正在编译安装......"
cd ${install_path}/redis-${redis_version} && make && make install
echo "......编译安装完成......"
# 配置文件
echo "......正在修改配置文件......"
## 创建配置文件
mkdir /etc/redis
cp ${install_path}/redis-${redis_version}/redis.conf /etc/redis/redis.conf
## 修改配置文件(/etc/redis/redis.conf)
sed -i 's/daemonize no/daemonize yes/g' /etc/redis/redis.conf
## 修改默认密码,如果为空则开启所有ip都可以访问,如果不为空则使用密码访问
if [ ${#redis_password} -eq 0 ];
then
echo "未输入密码,开启所有IP都能访问"
sed -i 's/bind 127.0.0.1 -::1/# bind 127.0.0.1 -::1/g' /etc/redis/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis/redis.conf
else
echo "已设定密码"
sed -i 's/bind 127.0.0.1 -::1/# bind 127.0.0.1 -::1/g' /etc/redis/redis.conf
sed -i 's/# requirepass foobared/requirepass '"${redis_password}"'/g' /etc/redis/redis.conf
fi
## 持久化设定
echo "......修改配置文件完成......"
# 配置systemctl脚本
echo "......正在配置systemctl脚本......"
echo "......正在配置systemctl脚本......"
cat>/usr/lib/systemd/system/redis.service<<EOF
[Unit]
Description=redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start redis
systemctl enable redis
systemctl status redis
echo "......systemctl脚本配置完成......"
echo "......!!!脚本运行完成!!!......"
3.运行
sh /usr/local/redis7.sh
三、相关问题
1.报错: WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition.
解决方法文章来源:https://www.toymoban.com/news/detail-588731.html
echo 1 > /proc/sys/vm/overcommit_memory
2.exact Failed to connect to any host resolved for DNS name
解决方法,注销配置文件中的绑定ip文章来源地址https://www.toymoban.com/news/detail-588731.html
到了这里,关于redis7.0编译安装 + bash安装脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!